Rodin::Math::PointMatrix class

Point matrix with bounded maximum number of rows (space dimension).

This type encodes the invariant: rows <= RODIN_MAXIMAL_SPACE_DIMENSION (==3), while allowing an arbitrary number of columns (dynamic).

Typical uses:

  • Point sets stored as columns (3 x N, 2 x N, 1 x N)
  • Jacobians where the codomain is embedded in R^3 (3 x k, k dynamic)

Public functions

auto dot(const PointMatrix& other) const -> Scalar noexcept
Frobenius dot product with another PointMatrix of same runtime size.
auto transpose() const -> Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, 0, Eigen::Dynamic, MaxRows>
Transpose (cols x rows). Since rows<=3, result has at most 3 columns.
auto adjoint() const -> Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, 0, Eigen::Dynamic, MaxRows>
Adjoint (conjugate transpose), consistent with Eigen semantics.