HILA
|
List of datatypes offered by HILA
int
int64_t
float
double
long double
?)Here n,m \( \in \mathbb{N}\), S is any standard type, and T includes S and Complex<S>. C++ or C standard complex types should not be used (not AVX vectorizable). See respective links for documented functions/methods.
NOTE: Matrix is defined with the base class Matrix_t (See documentation for details). Vector, #HorizontalVector and SquareMatrix are special alias cases of Matrix Class, so all methods are inherited.
Parity :
enum with values EVEN, ODD, ALL; refers to parity of the site. Parity of site (x,y,z,t) is even if
(x+y+z+t)
is even, odd otherwise.
Conceptually a unit vector with values
±e_x, ±e_y, ±e_z, ±e_t
(if NDIM==4). Implemented as an enum class. Can be used to index arrays of size NDIM.
Acts as a Coordinate Vector for indexing Field. All Vector algebra is well defined, since CoordinateVector inherits from Vector which inherits from Matrix
NOTE: See CoordinateVector_t
Defining a CoordinateVector and Direction:
Direction objects act as unit vectors when cast to CoordinateVector. Additionally algebra acts as defined according to vector algebra:
CoordinateVectors can be assigned with initializer list, where indices of list are aligned with CoordinateVector dimensions. Unit vector form with Direction's is also given:
Simple operations like a dot product are defined:
Since Direction is an enum it can be casted to int, but int cannot be assigned to it
The ++d operator is also defined for Direction where it increase the direction in order \( \{e_x,e_y,e_z,e_t\} \). While –d operator is not defined
These are only some of the examples of what the CoordinateVector and Direction objects are capable of. For all definitions see coordinates.h, CoordinateVector and Direction pages.