Group acts-algebra-types

group acts-algebra-types

These are the default vector/matrix types that should be used throughout the codebase.

They all use the common Acts scalar type but support variable size either at compile- or runtime.

Eigen does not have a distinct type for symmetric matrices. A typedef for fixed-size matrices is still defined to simplify definition (one template size vs two template size for generic matrices) and to clarify semantic meaning in interfaces. It also ensures that the matrix is square. However, the user is responsible for ensuring that the values are symmetric.

Without a distinct type for symmetric matrices, there is no way to provide any conditions e.g. square size, for the dynamic-sized case. Consequently, no dynamic-sized symmetric matrix type is defined. Use the ActsDynamicMatrix instead.


using ActsDynamicMatrix = Eigen::Matrix<ActsScalar, Eigen::Dynamic, Eigen::Dynamic>
using ActsDynamicVector = Eigen::Matrix<ActsScalar, Eigen::Dynamic, 1>
template<unsigned int kRows, unsigned int kCols>
using ActsMatrix = Eigen::Matrix<ActsScalar, kRows, kCols>
using ActsScalar = double

Common scalar (floating point type used for the default algebra types.

Defaults to double but can be customized by the user.

template<unsigned int kSize>
using ActsSquareMatrix = Eigen::Matrix<ActsScalar, kSize, kSize>
template<unsigned int kSize>
using ActsVector = Eigen::Matrix<ActsScalar, kSize, 1>