criptic v1
Cosmic Ray Interstellar Propagation Tool using Itô Calculus
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
criptic Namespace Reference

The primary namespace for criptic objects. More...

Namespaces

namespace  constants
 A namespace to hold physcial constants.
 
namespace  gas
 A namespace to hold quantities related to the background gas.
 
namespace  MPIUtil
 A namespace to hold variables and functions related to MPI.
 
namespace  partTypes
 A namespace to hold properties of elementary particles.
 
namespace  propagation
 A namespace to hold quantities related to CR propagation.
 
namespace  rkf
 A namespace to hold the Runge-Kutta-Fehlberg coefficients.
 
namespace  sr
 A namespace to hold special relativistic functions.
 
namespace  units
 A namespace to hold unit conversions.
 

Classes

class  CheckpointManager
 A class to write and read checkpoint files. More...
 
class  CRPacket
 A class that holds data to describe a CR packet. More...
 
class  CRSource
 A class to describe a source of CR packets. More...
 
class  CRTree
 A class to manage CR packets and sources. More...
 
class  CRTreeCommunicator
 Class to manage communications during tree walks. More...
 
class  FieldQty
 Class to hold and compute field quantities. More...
 
class  FieldQtyGrad
 Class to hold and compute gradients of field quantities. More...
 
class  GasNode
 A class to store information of nodes in a GasTree. More...
 
class  GasTree
 A class to manage Gas packets for Lagrangian gas descriptions. More...
 
class  Geometry
 A class that describes the geometry of a calculation. More...
 
class  GizmoReader
 A class to hold all relevant data from a GIZMO snapshot file. More...
 
struct  GlobalNode
 Struct representing a node of the global KD tree. More...
 
class  Interp1D
 A class to handle interpolation on 1D tables. More...
 
class  Interp2D
 A class to handle interpolation on 2D tables. More...
 
struct  LocalNodeStruct_
 Struct representing a node of the local KD tree. More...
 
class  ParmParser
 Class to parse the criptic input deck. More...
 
class  Prob
 A class to manage user-defined problem setup and work. More...
 
class  RealBox
 Class that represents a 3D rectangular prism. More...
 
class  RealTensor2
 Class that represents a rank 2 tensor. More...
 
class  RngThread
 Thread-safe random number generator. More...
 
class  ThreadVec
 A class to automate private thread copies of objects. More...
 
struct  TNBBasis
 Structure to hold TNB basis data. More...
 
class  Vec3
 Class that represents a mathematical vector. More...
 

Typedefs

typedef struct criptic::LocalNodeStruct_ LocalNode
 Struct representing a node of the local KD tree.
 
using Real = double
 
using IdxType = std::vector< Real >::size_type
 
using SignedIdxType = std::ptrdiff_t
 
typedef Vec3< RealRealVec
 
typedef Vec3< IdxTypeIdxVec
 
typedef Vec3< SignedIdxTypeSIdxVec
 
typedef Vec3< bool > BoolVec
 

Enumerations

enum  FieldQtyType { ndenIdx = 0 , presIdx , edenIdx , nFieldQty }
 Enum of field quantities. More...
 
enum  FieldQtyNeedType { noFieldQty = 0 , needFieldQty , needFieldQtyGrad }
 Enum of types of field quantities to be computed. More...
 
enum  errCodes {
  errNoError , errBadCommandLine , errBadInputFile , errBadCheckpoint ,
  errBadGridSpecification , errBadXLoExtrapolation , errBadXHiExtrapolation , errBadYLoExtrapolation ,
  errBadYHiExtrapolation , errBadXYExtrapolation , errNotImplemented , errTimeStepTooSmall ,
  errInvalidTimeStep , errUnspecified , nErrCodes
}
 List of error return codes. More...
 
enum  extrapType { extrapError , extrapLinear , extrapConst , extrapFixedVal }
 Enum describing different ways to handle extrapolation. More...
 

Functions

criptic::Real advancePacket (const criptic::Real tStart, const criptic::Real tStop, const criptic::Geometry &geom, const criptic::gas::Gas &gasBG, const criptic::propagation::Propagation &prop, const criptic::Losses &loss, const criptic::RngThread &rng, const criptic::FieldQty &qty, const criptic::FieldQtyGrad &qtyGrad, const criptic::Real cStep, const criptic::Real errTol, const criptic::Real wFracMin, const criptic::Real pMin, const criptic::Real TMin, const criptic::Real packetDtMin, const criptic::Real &h, criptic::RealVec &x, criptic::CRPacket &packet, criptic::Real &dt, std::vector< RealVec > &secondaryPositions, std::vector< CRPacket > &secondaryPackets)
 Advance a packet by the specified time.
 
criptic::FieldQty operator* (const criptic::Real a, const criptic::FieldQty &fq)
 Multiply a scalar by a FieldQty elementwise.
 
criptic::FieldQty min (const criptic::FieldQty &q1, const criptic::FieldQty &q2)
 Take elementwise minimum of two FieldQty objects.
 
criptic::FieldQty max (const criptic::FieldQty &q1, const criptic::FieldQty &q2)
 Take elementwise maximum of two FieldQty objects.
 
criptic::FieldQtyGrad operator* (const criptic::Real a, const criptic::FieldQtyGrad &fqg)
 Multiply a scalar by a FieldQtyGrad elementwise.
 
criptic::FieldQtyGrad operator* (const criptic::RealVec &a, const criptic::FieldQtyGrad &fqg)
 Multiply a RealVec by a FieldQtyGrad elementwise.
 
criptic::FieldQtyGrad min (const criptic::FieldQtyGrad &q1, const criptic::FieldQtyGrad &q2)
 Take elementwise minimum of two FieldQtyGrad objects.
 
criptic::FieldQtyGrad max (const criptic::FieldQtyGrad &q1, const criptic::FieldQtyGrad &q2)
 Take elementwise maximum of two FieldQtyGrad objects.
 
ProbinitProb (const criptic::ParmParser &pp, const criptic::Geometry &geom, criptic::RngThread &rng)
 Function to return the Prob object.
 
criptic::RealTensor2 operator+ (const criptic::Real a, const criptic::RealTensor2 &t)
 Add a scalar and a RealTensor2 elementwise.
 
criptic::RealTensor2 operator- (const criptic::Real a, const criptic::RealTensor2 &t)
 Subtract a scalar from a RealTensor2 elementwise.
 
criptic::RealTensor2 operator* (const criptic::Real a, const criptic::RealTensor2 &t)
 Multiply a scalar by a RealTensor2 elementwise.
 
criptic::RealTensor2 operator/ (const criptic::Real a, const criptic::RealTensor2 &t)
 Divide a RealTensor2 by a scalar elementwise.
 
criptic::RealTensor2 outer (const criptic::RealVec &v1, const criptic::RealVec &v2)
 Compute the outer product of two RealVec objects.
 
TNBBasis TNBVectors (const RealVec &v, const RealTensor2 &vGrad)
 Compute tangent, normal, and binormal vectors.
 
template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto operator+ (const T &a, const Vec3< U > &v) -> Vec3< decltype(a+v[0])>
 Add a scalar and a Vec3 elementwise.
 
template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto operator- (const T &a, const Vec3< U > &v) -> Vec3< decltype(a-v[0])>
 Subtract a scalar from a Vec3 elementwise.
 
template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto operator* (const T &a, const Vec3< U > &v) -> Vec3< decltype(a *v[0])>
 Multiply a scalar by a Vec3 elementwise.
 
template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto operator/ (const T &a, const Vec3< U > &v) -> Vec3< decltype(a/v[0])>
 Divide a Vec3 by a scalar elementwise.
 
template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value||std::is_enum< T >::value, bool > = true>
Vec3< bool > operator== (const T &a, const Vec3< U > &v)
 Evaluate equality of a Vec3 with a scalar elementwise.
 
template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value||std::is_enum< T >::value, bool > = true>
Vec3< bool > operator!= (const T &a, const Vec3< U > &v)
 Evaluate inequality of a Vec3 with a scalar elementwise.
 
template<class T , class U >
auto min (const criptic::Vec3< T > &v1, const criptic::Vec3< U > &v2) -> Vec3< decltype(v1[0]+v2[0])>
 Return the elementwise minimum of two Vec3's.
 
template<class T , class U >
auto max (const criptic::Vec3< T > &v1, const criptic::Vec3< U > &v2) -> Vec3< decltype(v1[0]+v2[0])>
 Return the elementwise maximum of two Vec3's.
 
template<class T >
Vec3< T > floor (const criptic::Vec3< T > &v)
 Return the elementwise floor of a Vec3.
 

Variables

constexpr IdxType rootNode = 0
 
constexpr IdxType nullNode = maxIdx
 
constexpr IdxType nullPacket = maxIdx
 
constexpr IdxType extNode = ~(nullNode >> 1)
 
const std::array< const std::array< char, 80 >, nErrCodeserrCodeStrings
 
static const criptic::RealTensor2 zeroTensor (0, 0, 0, 0, 0, 0, 0, 0, 0)
 
static const criptic::RealTensor2 identityTensor (1, 0, 0, 0, 1, 0, 0, 0, 1)
 
constexpr Real maxReal
 
constexpr Real eps
 
constexpr IdxType maxInt
 
constexpr IdxType maxIdx
 
constexpr IdxType nullIdx = maxIdx
 
static const RealVec zeroVec (0, 0, 0)
 
static const RealVec identityVec (1, 1, 1)
 
static const RealVec xHat (1, 0, 0)
 
static const RealVec yHat (0, 1, 0)
 
static const RealVec zHat (0, 0, 1)
 
static const IdxVec zeroIdxVec (0, 0, 0)
 
static const SIdxVec zeroSIdxVec (0, 0, 0)
 
static const BoolVec trueVec (1, 1, 1)
 
static const BoolVec falseVec (1, 1, 1)
 

Detailed Description

The primary namespace for criptic objects.

Typedef Documentation

◆ BoolVec

typedef Vec3<bool> criptic::BoolVec

Alias for a Vec3 of bool

◆ IdxType

using criptic::IdxType = typedef std::vector<Real>::size_type

Type for indices

◆ IdxVec

Alias for a Vec3 indices

◆ LocalNode

Struct representing a node of the local KD tree.

This structure represents a node of the local KD tree, which organizes the data within a single MPI rank.

◆ Real

using criptic::Real = typedef double

Real number type

◆ RealVec

Alias for a Vec3 of Real

◆ SIdxVec

Alias for a Vec3 of signed indices

◆ SignedIdxType

using criptic::SignedIdxType = typedef std::ptrdiff_t

Signed type for indices

Enumeration Type Documentation

◆ errCodes

List of error return codes.

Enumerator
errNoError 

No error, successful exit

errBadCommandLine 

Command line not properly formatted

errBadInputFile 

Input file could not be parsed

errBadCheckpoint 

Invalid instructions for checkpoint write

errBadGridSpecification 

Cartesian grid geometry invalid

errBadXLoExtrapolation 

Value is outside allowed range of pre-tabulated data in low x direction

errBadXHiExtrapolation 

Value is outside allowed range of pre-tabulated data in high x direction

errBadYLoExtrapolation 

Value is outside allowed range of pre-tabulated data in low y direction

errBadYHiExtrapolation 

Value is outside allowed range of pre-tabulated data in high y direction

errBadXYExtrapolation 

Invalid combination of x and y extrapolation

errNotImplemented 

User has called a virtual method that is not implemented

errTimeStepTooSmall 

Time step too small

errInvalidTimeStep 

Invalid time step computation

errUnspecified 

Miscellaneous error

nErrCodes 

Number of error codes

◆ extrapType

Enum describing different ways to handle extrapolation.

Enumerator
extrapError 

Throw error if asked to extrapolate

extrapLinear 

Extrapolate linearly

extrapConst 

Return final table value if asked to extrapolate

extrapFixedVal 

return a fixed value if asked to extraplate

◆ FieldQtyNeedType

Enum of types of field quantities to be computed.

Enumerator
noFieldQty 

No field quantities needed

needFieldQty 

Field quantities needed

needFieldQtyGrad 

Gradients of field quantities needed

◆ FieldQtyType

Enum of field quantities.

Enumerator
ndenIdx 

Number density

presIdx 

Pressure

edenIdx 

Kinetic energy density

nFieldQty 

Total number of field quantities

Function Documentation

◆ advancePacket()

criptic::Real criptic::advancePacket ( const criptic::Real  tStart,
const criptic::Real  tStop,
const criptic::Geometry geom,
const criptic::gas::Gas gasBG,
const criptic::propagation::Propagation prop,
const criptic::Losses &  loss,
const criptic::RngThread rng,
const criptic::FieldQty qty,
const criptic::FieldQtyGrad qtyGrad,
const criptic::Real  cStep,
const criptic::Real  errTol,
const criptic::Real  wFracMin,
const criptic::Real  pMin,
const criptic::Real  TMin,
const criptic::Real  packetDtMin,
const criptic::Real h,
criptic::RealVec x,
criptic::CRPacket packet,
criptic::Real dt,
std::vector< RealVec > &  secondaryPositions,
std::vector< CRPacket > &  secondaryPackets 
)

Advance a packet by the specified time.

Parameters
tStartStart time of advance
tStopStop time of advance
geomObject describing problem geometry
gasBGObject describing background gas
propObject describing propagation parameters
lossObject that computes loss rates
rngRandom number generator
qtyPacket field quantities
qtyGradGradients of packet field quantities
cStepCFL-like parameter controlling step size
errTolTolerance in integration along field lines
wFracMinMinimum statistical weight relative to starting
pMinMinimum momentum
TMinMinimum kinetic energy
packetDtMinMinimum allowed time step for individual packet
hPacket scale length
xPacket position
packetPacket properties
dtInternal time step used to advance packet
secondaryPositionsPositions of any secondary packets created
secondaryPacketsProperties of any secondary packets created
Returns
Time to which packet was advanced

This routine advances a single packet through from tStart to tStop. On return, x and packet will have been updated to new values. The minimum internal time step required to advance the packet is stored as dt, and the time to which the packet was advanced is returned; this may be less than tStop if the packet left the computational domain or was destroyed by a loss mechanism. If the packet is to be deleted for this reason, packet.w will be set to a negative value.

◆ floor()

template<class T >
Vec3< T > criptic::floor ( const criptic::Vec3< T > &  v)
inline

Return the elementwise floor of a Vec3.

Parameters
vThe Vec3
Returns
A Vec3 containing the elementwise floor

◆ initProb()

Prob * criptic::initProb ( const criptic::ParmParser pp,
const criptic::Geometry geom,
criptic::RngThread rng 
)

Function to return the Prob object.

Parameters
ppThe criptic::ParmParser object containing the input deck
geomThe problem geometry object
rngThe random number generator

In this routine it is the user's responsibility to allocate and return a pointer to an object of class criptic::Prob. This object allows the user to specify the background gas and cosmic ray propagation models, and to specify problem initialization and problem-specific work to be carried out at various poins during the simulation.

◆ max() [1/3]

criptic::FieldQty criptic::max ( const criptic::FieldQty q1,
const criptic::FieldQty q2 
)
inline

Take elementwise maximum of two FieldQty objects.

Parameters
q1The first FieldQty
q2The second FieldQty
Returns
The elementwise maximum of q1 and q2

◆ max() [2/3]

criptic::FieldQtyGrad criptic::max ( const criptic::FieldQtyGrad q1,
const criptic::FieldQtyGrad q2 
)
inline

Take elementwise maximum of two FieldQtyGrad objects.

Parameters
q1The first FieldQtyGrad
q2The second FieldQtyGrad
Returns
The elementwise maximum of q1 and q2

◆ max() [3/3]

template<class T , class U >
auto criptic::max ( const criptic::Vec3< T > &  v1,
const criptic::Vec3< U > &  v2 
) -> Vec3<decltype(v1[0]+v2[0])>
inline

Return the elementwise maximum of two Vec3's.

Parameters
v1The first Vec3
v2The second Vec3
Returns
A Vec3 containing the elementwise maximum of v1 and v2

◆ min() [1/3]

criptic::FieldQty criptic::min ( const criptic::FieldQty q1,
const criptic::FieldQty q2 
)
inline

Take elementwise minimum of two FieldQty objects.

Parameters
q1The first FieldQty
q2The second FieldQty
Returns
The elementwise minimum of q1 and q2

◆ min() [2/3]

criptic::FieldQtyGrad criptic::min ( const criptic::FieldQtyGrad q1,
const criptic::FieldQtyGrad q2 
)
inline

Take elementwise minimum of two FieldQtyGrad objects.

Parameters
q1The first FieldQtyGrad
q2The second FieldQtyGrad
Returns
The elementwise minimum of q1 and q2

◆ min() [3/3]

template<class T , class U >
auto criptic::min ( const criptic::Vec3< T > &  v1,
const criptic::Vec3< U > &  v2 
) -> Vec3<decltype(v1[0]+v2[0])>
inline

Return the elementwise minimum of two Vec3's.

Parameters
v1The first Vec3
v2The second Vec3
Returns
A Vec3 containing the elementwise minimum of v1 and v2

◆ operator!=()

template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value||std::is_enum< T >::value, bool > = true>
Vec3< bool > criptic::operator!= ( const T &  a,
const Vec3< U > &  v 
)
inline

Evaluate inequality of a Vec3 with a scalar elementwise.

Parameters
aThe scalar
vThe Vec3
Returns
A Vec3<bool> containing the elementwise inequality

◆ operator*() [1/5]

criptic::FieldQty criptic::operator* ( const criptic::Real  a,
const criptic::FieldQty fq 
)
inline

Multiply a scalar by a FieldQty elementwise.

Parameters
aThe scalar
fqThe FieldQty
Returns
A FieldQty containing the elementwise product a*q

◆ operator*() [2/5]

criptic::FieldQtyGrad criptic::operator* ( const criptic::Real  a,
const criptic::FieldQtyGrad fqg 
)
inline

Multiply a scalar by a FieldQtyGrad elementwise.

Parameters
aThe scalar
fqgThe FieldQtyGrad
Returns
A FieldQty containing the elementwise product a*q

◆ operator*() [3/5]

criptic::RealTensor2 criptic::operator* ( const criptic::Real  a,
const criptic::RealTensor2 t 
)
inline

Multiply a scalar by a RealTensor2 elementwise.

Parameters
aThe scalar
tThe RealTensor2
Returns
A RealTensor2 containing the elementwise product a*x

◆ operator*() [4/5]

criptic::FieldQtyGrad criptic::operator* ( const criptic::RealVec a,
const criptic::FieldQtyGrad fqg 
)
inline

Multiply a RealVec by a FieldQtyGrad elementwise.

Parameters
aThe RealVec
fqgThe FieldQtyGrad
Returns
A FieldQty containing the elementwise product a*q

◆ operator*() [5/5]

template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto criptic::operator* ( const T &  a,
const Vec3< U > &  v 
) -> Vec3<decltype(a*v[0])>
inline

Multiply a scalar by a Vec3 elementwise.

Parameters
aThe scalar
vThe Vec3
Returns
A Vec3 containing the elementwise product a*x

◆ operator+() [1/2]

criptic::RealTensor2 criptic::operator+ ( const criptic::Real  a,
const criptic::RealTensor2 t 
)
inline

Add a scalar and a RealTensor2 elementwise.

Parameters
aThe scalar
tThe RealTensor2
Returns
A RealTensor2 containing the elementwise sum a+t

◆ operator+() [2/2]

template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto criptic::operator+ ( const T &  a,
const Vec3< U > &  v 
) -> Vec3<decltype(a+v[0])>
inline

Add a scalar and a Vec3 elementwise.

Parameters
aThe scalar
vThe Vec3
Returns
A Vec3 containing the elementwise sum a+v

◆ operator-() [1/2]

criptic::RealTensor2 criptic::operator- ( const criptic::Real  a,
const criptic::RealTensor2 t 
)
inline

Subtract a scalar from a RealTensor2 elementwise.

Parameters
aThe scalar
tThe RealTensor2
Returns
A RealTensor2 containing the elementwise difference a-t

◆ operator-() [2/2]

template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto criptic::operator- ( const T &  a,
const Vec3< U > &  v 
) -> Vec3<decltype(a-v[0])>
inline

Subtract a scalar from a Vec3 elementwise.

Parameters
aThe scalar
vThe Vec3
Returns
A Vec3 containing the elementwise difference a-v

◆ operator/() [1/2]

criptic::RealTensor2 criptic::operator/ ( const criptic::Real  a,
const criptic::RealTensor2 t 
)
inline

Divide a RealTensor2 by a scalar elementwise.

Parameters
aThe scalar
tThe RealTensor2
Returns
A RealTensor2 containing the elementwise dividend a/t

◆ operator/() [2/2]

template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value, bool > = true>
auto criptic::operator/ ( const T &  a,
const Vec3< U > &  v 
) -> Vec3<decltype(a/v[0])>
inline

Divide a Vec3 by a scalar elementwise.

Parameters
aThe scalar
vThe Vec3
Returns
A Vec3 containing the elementwise dividend a/v

◆ operator==()

template<class T , class U , std::enable_if_t< std::is_arithmetic< T >::value||std::is_enum< T >::value, bool > = true>
Vec3< bool > criptic::operator== ( const T &  a,
const Vec3< U > &  v 
)
inline

Evaluate equality of a Vec3 with a scalar elementwise.

Parameters
aThe scalar
vThe Vec3
Returns
A Vec3<bool> containing the elementwise equality

◆ outer()

criptic::RealTensor2 criptic::outer ( const criptic::RealVec v1,
const criptic::RealVec v2 
)
inline

Compute the outer product of two RealVec objects.

Parameters
v1The first vector
v2The second vector
Returns
The outer product of the two vectors

◆ TNBVectors()

TNBBasis criptic::TNBVectors ( const RealVec v,
const RealTensor2 vGrad 
)
inline

Compute tangent, normal, and binormal vectors.

Parameters
vThe vector field
vGradThe gradient of v
Returns
TNB basis structure to be computed

This routine computes the tangent, normal, and binormal vectors of a vector field.

Variable Documentation

◆ eps

constexpr Real criptic::eps
constexpr
Initial value:
=
std::numeric_limits<Real>::epsilon()

Precision of real numbers

◆ errCodeStrings

const std::array<const std::array<char, 80>, nErrCodes> criptic::errCodeStrings
Initial value:
= { {
{"No error"},
{"Bad command line"},
{"Bad input file"},
{"Bad checkpoint file"},
{"Bad grid specification"},
{"Extrapolation outside allowed range in low x direction"},
{"Extrapolation outside allowed range in high x direction"},
{"Extrapolation outside allowed range in low y direction"},
{"Extrapolation outside allowed range in high y direction"},
{"Invalid combination of x and y extrapolation instructions"},
{"Function not implemented"},
{"Packet advance time step too small"},
{"Invalid time step computation"},
{"Unspecified error"}
} }

Descriptive strings for error codes

◆ extNode

constexpr IdxType criptic::extNode = ~(nullNode >> 1)
constexpr

Flag for node on another MPI rank

◆ falseVec

const BoolVec criptic::falseVec(1, 1, 1) ( ,
,
 
)
static

Vector of all false

◆ identityTensor

const criptic::RealTensor2 criptic::identityTensor(1, 0, 0, 0, 1, 0, 0, 0, 1) ( ,
,
,
,
,
,
,
,
 
)
static

The identity tensor

◆ identityVec

const RealVec criptic::identityVec(1, 1, 1) ( ,
,
 
)
static

The identity vector

◆ maxIdx

constexpr IdxType criptic::maxIdx
constexpr
Initial value:
=
std::numeric_limits<IdxType>::max()

Maximum index

◆ maxInt

constexpr IdxType criptic::maxInt
constexpr
Initial value:
=
std::numeric_limits<int>::max()

Maximum integer

◆ maxReal

constexpr Real criptic::maxReal
constexpr
Initial value:
=
std::numeric_limits<Real>::max()

Maximum real number

◆ nullIdx

constexpr IdxType criptic::nullIdx = maxIdx
constexpr

Flag value for invalid index

◆ nullNode

constexpr IdxType criptic::nullNode = maxIdx
constexpr

Flag value for invalid node

◆ nullPacket

constexpr IdxType criptic::nullPacket = maxIdx
constexpr

Flag for invalid packet

◆ rootNode

constexpr IdxType criptic::rootNode = 0
constexpr

Index of root node

◆ trueVec

const BoolVec criptic::trueVec(1, 1, 1) ( ,
,
 
)
static

Vector of all true

◆ xHat

const RealVec criptic::xHat(1, 0, 0) ( ,
,
 
)
static

The x unit vector

◆ yHat

const RealVec criptic::yHat(0, 1, 0) ( ,
,
 
)
static

The y unit vector

◆ zeroIdxVec

const IdxVec criptic::zeroIdxVec(0, 0, 0) ( ,
,
 
)
static

The zero index vector

◆ zeroSIdxVec

const SIdxVec criptic::zeroSIdxVec(0, 0, 0) ( ,
,
 
)
static

The signed zero index vector

◆ zeroTensor

const criptic::RealTensor2 criptic::zeroTensor(0, 0, 0, 0, 0, 0, 0, 0, 0) ( ,
,
,
,
,
,
,
,
 
)
static

The zero tensor

◆ zeroVec

const RealVec criptic::zeroVec(0, 0, 0) ( ,
,
 
)
static

The zero vector

◆ zHat

const RealVec criptic::zHat(0, 0, 1) ( ,
,
 
)
static

The z unit vector