Rodin/Math/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 Shape and Topology Optimization.
namespace Rodin::FormLanguage
Module for writing high level abstract expressions.

Classes

template<class T>
struct Rodin::FormLanguage::IsEigenObject
Type trait to check if a type is an Eigen object.
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 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.