SOFA API  7352f41a
Open source framework for multi-physics simuation
sofa::linearalgebra::MatrixExpr< T > Class Template Reference

#include <MatrixExpr.h>

Inheritance diagram for sofa::linearalgebra::MatrixExpr< T >:

Detailed Description

template<class T>
class sofa::linearalgebra::MatrixExpr< T >

Data structure representing an operation on matrices. Used in the context of the expression templates pattern.

Public Member Functions

 MatrixExpr (const Expr &e)
 
template<class M2 >
MatrixExpr< MatrixProduct< Expr, typename M2::Expr > > operator* (const M2 &m) const
 
template<class M2 >
MatrixExpr< MatrixAddition< Expr, typename M2::Expr > > operator+ (const M2 &m) const
 
template<class M2 >
MatrixExpr< MatrixSubstraction< Expr, typename M2::Expr > > operator- (const M2 &m) const
 
MatrixExpr< MatrixNegative< Expr > > operator- () const
 
MatrixExpr< MatrixTranspose< Expr > > t () const
 
MatrixExpr< MatrixScale< Expr, double > > operator* (double d) const
 

Friends

MatrixExpr< MatrixScale< Expr, double > > operator* (double d, const MatrixExpr< Expr > &m)
 
template<class M1 >
MatrixExpr< MatrixProduct< typename M1::Expr, Expr > > operator* (const M1 &m1, const MatrixExpr< Expr > &m2)
 
template<class M1 >
MatrixExpr< MatrixAddition< typename M1::Expr, Expr > > operator+ (const M1 &m1, const MatrixExpr< Expr > &m2)
 
template<class M1 >
MatrixExpr< MatrixSubstraction< typename M1::Expr, Expr > > operator- (const M1 &m1, const MatrixExpr< Expr > &m2)
 

Constructor details

◆ MatrixExpr()

template<class T >
sofa::linearalgebra::MatrixExpr< T >::MatrixExpr ( const Expr e)
inlineexplicit

Function details

◆ operator*() [1/2]

template<class T >
template<class M2 >
MatrixExpr< MatrixProduct< Expr, typename M2::Expr > > sofa::linearalgebra::MatrixExpr< T >::operator* ( const M2 &  m) const
inline

◆ operator*() [2/2]

template<class T >
MatrixExpr< MatrixScale< Expr, double > > sofa::linearalgebra::MatrixExpr< T >::operator* ( double  d) const
inline

◆ operator+()

template<class T >
template<class M2 >
MatrixExpr< MatrixAddition< Expr, typename M2::Expr > > sofa::linearalgebra::MatrixExpr< T >::operator+ ( const M2 &  m) const
inline

◆ operator-() [1/2]

template<class T >
MatrixExpr< MatrixNegative< Expr > > sofa::linearalgebra::MatrixExpr< T >::operator- ( ) const
inline

◆ operator-() [2/2]

template<class T >
template<class M2 >
MatrixExpr< MatrixSubstraction< Expr, typename M2::Expr > > sofa::linearalgebra::MatrixExpr< T >::operator- ( const M2 &  m) const
inline

◆ t()

template<class T >
MatrixExpr< MatrixTranspose< Expr > > sofa::linearalgebra::MatrixExpr< T >::t ( ) const
inline

Related details

◆ operator* [1/2]

template<class T >
template<class M1 >
MatrixExpr< MatrixProduct< typename M1::Expr, Expr > > operator* ( const M1 &  m1,
const MatrixExpr< Expr > &  m2 
)
friend

◆ operator* [2/2]

template<class T >
MatrixExpr< MatrixScale< Expr, double > > operator* ( double  d,
const MatrixExpr< Expr > &  m 
)
friend

◆ operator+

template<class T >
template<class M1 >
MatrixExpr< MatrixAddition< typename M1::Expr, Expr > > operator+ ( const M1 &  m1,
const MatrixExpr< Expr > &  m2 
)
friend

◆ operator-

template<class T >
template<class M1 >
MatrixExpr< MatrixSubstraction< typename M1::Expr, Expr > > operator- ( const M1 &  m1,
const MatrixExpr< Expr > &  m2 
)
friend