CubbyFlow::MatrixTri< T, Rows, Cols, M1 > Class Template Reference

#include <Core/Matrix/MatrixExpression.hpp>

Inheritance diagram for CubbyFlow::MatrixTri< T, Rows, Cols, M1 >:
CubbyFlow::MatrixExpression< T, Rows, Cols, MatrixTri< T, Rows, Cols, M1 > >

Public Member Functions

constexpr MatrixTri (const M1 &mat1, bool isUpper, bool isStrict)
 
constexpr size_t GetRows () const
 
constexpr size_t GetCols () const
 
operator() (size_t i, size_t j) const
 
- Public Member Functions inherited from CubbyFlow::MatrixExpression< T, Rows, Cols, MatrixTri< T, Rows, Cols, M1 > >
constexpr size_t GetRows () const
 Returns the number of rows. More...
 
constexpr size_t GetCols () const
 Returns the number of columns. More...
 
Eval (size_t i, size_t j) const
 Returns the evaluated value for (i, j). More...
 
Matrix< T, Rows, Cols > Eval () const
 
bool IsSimilar (const MatrixExpression< T, R, C, E > &m, double tol=std::numeric_limits< double >::epsilon()) const
 
constexpr bool IsSquare () const
 Returns true if this matrix is a square matrix. More...
 
ValueType Sum () const
 
ValueType Avg () const
 
ValueType Min () const
 
ValueType Max () const
 
ValueType AbsMin () const
 
ValueType AbsMax () const
 
ValueType Trace () const
 
ValueType Determinant () const
 
std::enable_if_t<(Rows > 4 &&Cols > 4)||IsMatrixSizeDynamic< Rows, Cols >), U > Determinant (const MatrixExpression &m)
 
size_t DominantAxis () const
 
size_t SubdominantAxis () const
 
ValueType Norm () const
 
ValueType NormSquared () const
 
ValueType FrobeniusNorm () const
 
ValueType Length () const
 
ValueType LengthSquared () const
 
ValueType DistanceTo (const MatrixExpression< T, R, C, E > &other) const
 Returns the distance to the other vector. More...
 
DistanceTo (const MatrixExpression< T, R, C, E > &other) const
 
ValueType DistanceSquaredTo (const MatrixExpression< T, R, C, E > &other) const
 Returns the squared distance to the other vector. More...
 
DistanceSquaredTo (const MatrixExpression< T, R, C, E > &other) const
 
MatrixScalarElemWiseBinaryOp< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &, std::divides< T > > Normalized () const
 
MatrixDiagonal< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &> Diagonal () const
 Returns diagonal part of this matrix. More...
 
MatrixOffDiagonal< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &> OffDiagonal () const
 Returns off-diagonal part of this matrix. More...
 
MatrixTri< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &> StrictLowerTri () const
 Returns strictly lower triangle part of this matrix. More...
 
MatrixTri< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &> StrictUpperTri () const
 Returns strictly upper triangle part of this matrix. More...
 
MatrixTri< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &> LowerTri () const
 Returns lower triangle part of this matrix (including the diagonal). More...
 
MatrixTri< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &> UpperTri () const
 Returns upper triangle part of this matrix (including the diagonal). More...
 
MatrixTranspose< T, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &> Transposed () const
 
Matrix< T, Rows, Cols > Inverse () const
 Returns inverse matrix. More...
 
void Inverse (const MatrixExpression< T, Rows, Cols, MatrixTri< T, Rows, Cols, M1 > > &m, std::enable_if_t<(Rows > 4 &&Cols > 4)||IsMatrixSizeDynamic< Rows, Cols >(), M > &result)
 
MatrixUnaryOp< U, Rows, Cols, const MatrixTri< T, Rows, Cols, M1 > &, TypeCast< T, U > > CastTo () const
 
MatrixTypeCast< T, Rows, Cols, U, const D &> CastTo () const
 
std::enable_if_t<(IsMatrixSizeDynamic< Rows, Cols >)||Cols==1) &&(IsMatrixSizeDynamic< R, C >)||C==1), U > Dot (const MatrixExpression< T, R, C, E > &expression) const
 
std::enable_if_t<(IsMatrixSizeDynamic< Rows, Cols >)||(Rows==2 &&Cols==1)) &&(IsMatrixSizeDynamic< R, C >)||(R==2 &&C==1)), U > Cross (const MatrixExpression< T, R, C, E > &expression) const
 
std::enable_if_t<(IsMatrixSizeDynamic< Rows, Cols >)||(Rows==3 &&Cols==1)) &&(IsMatrixSizeDynamic< R, C >)||(R==3 &&C==1)), Matrix< U, 3, 1 > > Cross (const MatrixExpression< T, R, C, E > &expression) const
 
std::enable_if_t<(IsMatrixSizeDynamic< Rows, Cols >)||((Rows==2||Rows==3) &&Cols==1)) &&(IsMatrixSizeDynamic< R, C >)||((R==2||R==3) &&C==1)), Matrix< U, Rows, 1 > > Reflected (const MatrixExpression< T, R, C, E > &normal) const
 Returns the reflection vector to the surface with given surface normal. More...
 
std::enable_if_t<(IsMatrixSizeDynamic< Rows, Cols >)||((Rows==2||Rows==3) &&Cols==1)) &&(IsMatrixSizeDynamic< R, C >)||((R==2||R==3) &&C==1)), Matrix< U, Rows, 1 > > Projected (const MatrixExpression< T, R, C, E > &normal) const
 Returns the projected vector to the surface with given surface normal. More...
 
std::enable_if_t<(IsMatrixSizeDynamic< Rows, Cols >)||(Rows==2 &&Cols==1)), Matrix< U, 2, 1 > > Tangential () const
 Returns the tangential vector for this vector. More...
 
std::enable_if_t<(IsMatrixSizeDynamic< Rows, Cols >)||(Rows==3 &&Cols==1)), std::tuple< Matrix< U, 3, 1 >, Matrix< U, 3, 1 > > > Tangentials () const
 Returns the tangential vectors for this vector. More...
 
MatrixTri< T, Rows, Cols, M1 > & GetDerived ()
 Returns actual implementation (the subclass). More...
 
const MatrixTri< T, Rows, Cols, M1 > & GetDerived () const
 Returns actual implementation (the subclass). More...
 

Additional Inherited Members

- Public Types inherited from CubbyFlow::MatrixExpression< T, Rows, Cols, MatrixTri< T, Rows, Cols, M1 > >
using ValueType = T
 
- Protected Member Functions inherited from CubbyFlow::MatrixExpression< T, Rows, Cols, MatrixTri< T, Rows, Cols, M1 > >
 MatrixExpression ()=default
 
- Static Protected Member Functions inherited from CubbyFlow::MatrixExpression< T, Rows, Cols, MatrixTri< T, Rows, Cols, M1 > >
static constexpr T Determinant (const MatrixExpression< T, 1, 1, MatrixTri< T, Rows, Cols, M1 > > &m)
 
static constexpr T Determinant (const MatrixExpression< T, 2, 2, MatrixTri< T, Rows, Cols, M1 > > &m)
 
static constexpr T Determinant (const MatrixExpression< T, 3, 3, MatrixTri< T, Rows, Cols, M1 > > &m)
 
static constexpr T Determinant (const MatrixExpression< T, 4, 4, MatrixTri< T, Rows, Cols, M1 > > &m)
 
static std::enable_if_t<(Rows > 4 &&Cols > 4)||IsMatrixSizeDynamic< Rows, Cols >), U > Determinant (const MatrixExpression< T, Rows, Cols, MatrixTri< T, Rows, Cols, M1 > > &m)
 
static void Inverse (const MatrixExpression< T, 1, 1, MatrixTri< T, Rows, Cols, M1 > > &m, Matrix< T, Rows, Cols > &result)
 
static void Inverse (const MatrixExpression< T, 2, 2, MatrixTri< T, Rows, Cols, M1 > > &m, Matrix< T, Rows, Cols > &result)
 
static void Inverse (const MatrixExpression< T, 3, 3, MatrixTri< T, Rows, Cols, M1 > > &m, Matrix< T, Rows, Cols > &result)
 
static void Inverse (const MatrixExpression< T, 4, 4, MatrixTri< T, Rows, Cols, M1 > > &m, Matrix< T, Rows, Cols > &result)
 
static void Inverse (const MatrixExpression &m, std::enable_if_t<(Rows > 4 &&Cols > 4)||IsMatrixSizeDynamic< Rows, Cols >(), M > &result)
 

Constructor & Destructor Documentation

◆ MatrixTri()

template<typename T, size_t Rows, size_t Cols, typename M1>
constexpr CubbyFlow::MatrixTri< T, Rows, Cols, M1 >::MatrixTri ( const M1 &  mat1,
bool  isUpper,
bool  isStrict 
)
inline

Member Function Documentation

◆ GetCols()

template<typename T , size_t Rows, size_t Cols, typename M1 >
constexpr size_t CubbyFlow::MatrixTri< T, Rows, Cols, M1 >::GetCols ( ) const

◆ GetRows()

template<typename T , size_t Rows, size_t Cols, typename M1 >
constexpr size_t CubbyFlow::MatrixTri< T, Rows, Cols, M1 >::GetRows ( ) const

◆ operator()()

template<typename T , size_t Rows, size_t Cols, typename M1 >
T CubbyFlow::MatrixTri< T, Rows, Cols, M1 >::operator() ( size_t  i,
size_t  j 
) const

The documentation for this class was generated from the following files: