Type Hierarchy¶
It is often convenient to express all types in a software from a few starting points. This is called
a type hierarchy. The advantage is that it is then fairly easy to switch, say, from using double to
long double. Indeed, doing so takes all of one line in this package, as can be seen in the file
HJCFITConfig.h.in at the root of the package. We describe below the type hierarchy of the
package. All the types are prefixed with t_ to indicate that it is a type. Where instructive, the
names of more complex types will start with i, r, c, b for integer, real, complex,
and bool.
Basic types¶
-
typedef double HJCFIT::t_real¶
Types of reals across HJCFIT.
-
typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE HJCFIT::t_int¶
Types of integers across HJCFIT.
Eigen/Math types¶
-
typedef Eigen::Matrix<t_real, ::Eigen::Dynamic, 1, 0, ::Eigen::Dynamic, 1> HJCFIT::t_rvector¶
Types of final state vectors across HJCFIT.
-
typedef Eigen::Matrix<t_real, 1, ::Eigen::Dynamic, ::Eigen::RowMajor, 1, ::Eigen::Dynamic> HJCFIT::t_initvec¶
Types of initial state vectors across HJCFIT.
-
typedef Eigen::Matrix<bool, ::Eigen::Dynamic, ::Eigen::Dynamic, 0, ::Eigen::Dynamic, ::Eigen::Dynamic> HJCFIT::t_bmatrix¶
Types of boolean matrices across HJCFIT.
-
typedef Eigen::Matrix<t_real, ::Eigen::Dynamic, ::Eigen::Dynamic, 0, ::Eigen::Dynamic, ::Eigen::Dynamic> HJCFIT::t_rmatrix¶
Types of real matrices across HJCFIT.
-
typedef Eigen::Matrix<t_real, ::Eigen::Dynamic, ::Eigen::Dynamic, 0, HJCFIT_STACK_MATRIX_MAX, HJCFIT_STACK_MATRIX_MAX> HJCFIT::t_stack_rmatrix¶
Types of real matrices across HJCFIT guaranteed to be allocated on the stack. Max size HJCFIT_STACK_MATRIX_MAX by HJCFIT_STACK_MATRIX_MAX.
Multi-precision types¶
HJCFIT is build without Multi-precision support
Global Data¶
- HJCFIT::quiet_nan
Holds an alias to NaN representation in
HJCFIT::t_real. The code will fail to compile if NaN cannot be represented in this type.