Eigen defines several typedef shortcuts for most common matrix and vector types.
The general patterns are the following:
MatrixSizeType
where Size
can be 2
,3
,4
for fixed size square matrices or X
for dynamic size, and where Type
can be i
for integer, f
for float, d
for double, cf
for complex float, cd
for complex double.
For example, Matrix3d
is a fixed-size 3x3 matrix type of doubles, and MatrixXf
is a dynamic-size matrix of floats.
There are also VectorSizeType
and RowVectorSizeType
which are self-explanatory. For example, Vector4cf
is a fixed-size vector of 4 complex floats.
With , template alias are also defined for common sizes. They follow the same pattern as above except that the scalar type suffix is replaced by a template parameter, i.e.:
MatrixSize<Type>
where Size
can be 2
,3
,4
for fixed size square matrices or X
for dynamic size.MatrixXSize<Type>
and MatrixSizeX<Type>
where Size
can be 2
,3
,4
for hybrid dynamic/fixed matrices.VectorSize<Type>
and RowVectorSize<Type>
for column and row vectors.With , you can also use fully generic column and row vector types: Vector<Type,Size>
and RowVector<Type,Size>
.