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 long double t_real
Types of reals across DCProgs.
typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE t_int
Types of integers across DCProgs.
typedef std::make_unsigned< t_int >::type t_uint
Types of unsigned integers across DCProgs.
Eigen/Math types¶
typedef std::complex< t_real > t_complex
Complex real type.
typedef Eigen::Matrix< t_real ,::Eigen::Dynamic, 1 > t_rvector
Types of final state vectors across DCProgs.
typedef Eigen::Matrix< t_real , 1,::Eigen::Dynamic > t_initvec
Types of initial state vectors across DCProgs.
typedef Eigen::Matrix< bool,::Eigen::Dynamic,::Eigen::Dynamic > t_bmatrix
Types of boolean matrices across DCProgs.
typedef Eigen::Matrix< t_real ,::Eigen::Dynamic,::Eigen::Dynamic > t_rmatrix
Types of real matrices across DCProgs.
typedef Eigen::Matrix< t_complex ,::Eigen::Dynamic,::Eigen::Dynamic > t_cmatrix
Type of complex matrices.
typedef std::vector< t_Burst > t_Bursts
Type holding the bursts.
typedef std::vector< t_real > t_Burst
Type of a burst.