Traits.h file
Type traits for the Math module and form language.
This file defines type traits used by the form language to determine properties of mathematical types, including scalar types and result types of operations. These traits enable compile-time type deduction for variational formulations.
Namespaces
- namespace Rodin
- The Rodin library for finite element methods and shape optimization.
- namespace Rodin::FormLanguage
- Namespace Rodin::
FormLanguage.
Classes
-
template<class T>struct Rodin::FormLanguage::IsEigenObject
- Type trait to check if a type is an Eigen object.
-
template<class T, class = void>struct Rodin::FormLanguage::ColsAtCompileTime
- Compile-time column count of a type; -1 when unavailable.
-
template<class T>struct Rodin::FormLanguage::ColsAtCompileTime<T, std::void_t<decltype(std::decay_t<T>::ColsAtCompileTime)>>
- Compile-time column count for Eigen-like types exposing ColsAtCompileTime.
-
template<>struct Rodin::FormLanguage::Traits<Boolean>
- Traits specialization for Boolean type.
-
template<>struct Rodin::FormLanguage::Traits<Integer>
- Traits specialization for Integer type.
-
template<>struct Rodin::FormLanguage::Traits<Real>
- Traits specialization for Real type.
-
template<>struct Rodin::FormLanguage::Traits<Complex>
- Traits specialization for Complex type.
-
template<class T>struct Rodin::FormLanguage::IsSpatialVector
- Type trait: whether
Tis a Math::SpatialVector. -
template<class Scalar>struct Rodin::FormLanguage::IsSpatialVector<Math::SpatialVector<Scalar>>
- Type trait specialization for Math::SpatialVector.
-
template<class T>struct Rodin::FormLanguage::IsSpatialMatrix
- Type trait: whether
Tis a Math::SpatialMatrix. -
template<class Scalar>struct Rodin::FormLanguage::IsSpatialMatrix<Math::SpatialMatrix<Scalar>>
- Type trait specialization for Math::SpatialMatrix.
-
template<class T>struct Rodin::FormLanguage::IsVectorRange
- Type trait: whether
Thas vector range (a spatial vector or a single-column Eigen object). -
template<class T>struct Rodin::FormLanguage::IsMatrixRange
- Type trait: whether
Thas matrix range (a spatial matrix or a multi-column Eigen object). -
template<class T>struct Rodin::FormLanguage::RangeKindOf
- Deduces the RangeKind of a type
T. -
template<class LHS, class RHS>struct Rodin::FormLanguage::Sum
- Type trait for deducing the result type of addition.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::Minus
- Type trait for deducing the result type of subtraction.
-
template<class Operand>struct Rodin::FormLanguage::UnaryMinus
- Type trait for deducing the result type of unary negation.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::Mult
- Type trait for deducing the result type of multiplication.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::Division
- Type trait for deducing the result type of division.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::Dot
- Type trait for deducing the result type of dot product.