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
DCProgsConfig.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
DCProgs::
t_real
¶ Types of reals across DCProgs.
-
typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE
DCProgs::
t_int
¶ Types of integers across DCProgs.
Eigen/Math types¶
-
typedef Eigen::Matrix<t_real, Eigen::Dynamic, 1>
DCProgs::
t_rvector
¶ Types of final state vectors across DCProgs.
-
typedef Eigen::Matrix<t_real, 1, Eigen::Dynamic>
DCProgs::
t_initvec
¶ Types of initial state vectors across DCProgs.
-
typedef Eigen::Matrix<bool, Eigen::Dynamic, Eigen::Dynamic>
DCProgs::
t_bmatrix
¶ Types of boolean matrices across DCProgs.
-
typedef Eigen::Matrix<t_real, Eigen::Dynamic, Eigen::Dynamic>
DCProgs::
t_rmatrix
¶ Types of real matrices across DCProgs.
Global Data¶
-
DCProgs::
quiet_nan
¶ Holds an alias to NaN representation in
DCProgs::t_real
. The code will fail to compile if NaN cannot be represented in this type.