SourceForge Logo Tiny Vector Matrix library using Expression Templates Sourceforge Project Page

include/tvmet/xpr/MatrixOperators.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tvmet
namespace  tvmet::element_wise

Defines

#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP, POD)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP, TP)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP, POD)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP, TP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)

Functions

template<class E1, std::size_t Rows1, std::size_t Cols1, class E2>
XprMatrix< XprBinOp< Fcnl_add
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows1, Cols1 >
, XprMatrix< E2, Rows1, Cols1 >
>, Rows1, Cols1 > 
tvmet::operator+ (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Rows1, Cols1 > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows1, std::size_t Cols1, class E2>
XprMatrix< XprBinOp< Fcnl_sub
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows1, Cols1 >
, XprMatrix< E2, Rows1, Cols1 >
>, Rows1, Cols1 > 
tvmet::operator- (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Rows1, Cols1 > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows1, std::size_t Cols1, class E2>
XprMatrix< XprBinOp< Fcnl_mul
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows1, Cols1 >
, XprMatrix< E2, Rows1, Cols1 >
>, Rows1, Cols1 > 
tvmet::element_wise::operator* (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Rows1, Cols1 > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows1, std::size_t Cols1, class E2>
XprMatrix< XprBinOp< Fcnl_div
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows1, Cols1 >
, XprMatrix< E2, Rows1, Cols1 >
>, Rows1, Cols1 > 
tvmet::element_wise::operator/ (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Rows1, Cols1 > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator+ (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator+ (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator- (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator- (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator* (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator* (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator/ (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator/ (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator+ (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator+ (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator- (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator- (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator* (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator* (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator/ (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator/ (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator+ (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator+ (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator- (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator- (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator* (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator* (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator/ (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator/ (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator+ (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_add
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator+ (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator- (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_sub
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator- (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator* (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mul
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator* (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator/ (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_div
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator/ (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_add
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator+ (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_add
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator+ (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_sub
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator- (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_sub
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator- (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_mul
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator* (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_mul
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator* (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_div
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator/ (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_div
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator/ (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows1, std::size_t Cols1, class E2, std::size_t Cols2>
XprMatrix< XprMMProduct
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1, XprMatrix< E2,
Cols1, Cols2 >, Cols2 >, Rows1,
Cols2 > 
tvmet::operator* (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of two XprMatrix.
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprVector< XprMVProduct
< XprMatrix< E1, Rows, Cols >
, Rows, Cols, XprVector< E2,
Cols > >, Rows > 
tvmet::operator* (const XprMatrix< E1, Rows, Cols > &lhs, const XprVector< E2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of XprMatrix and XprVector.
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp< Fcnl_mod
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows, Cols >
, XprMatrix< E2, Rows, Cols >
>, Rows, Cols > 
tvmet::element_wise::operator% (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp
< Fcnl_bitxor< typename
E1::value_type, typename
E2::value_type >, XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols > >, Rows,
Cols > 
tvmet::element_wise::operator^ (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp
< Fcnl_bitand< typename
E1::value_type, typename
E2::value_type >, XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols > >, Rows,
Cols > 
tvmet::element_wise::operator & (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp
< Fcnl_bitor< typename
E1::value_type, typename
E2::value_type >, XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols > >, Rows,
Cols > 
tvmet::element_wise::operator| (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp< Fcnl_shl
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows, Cols >
, XprMatrix< E2, Rows, Cols >
>, Rows, Cols > 
tvmet::element_wise::operator<< (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp< Fcnl_shr
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows, Cols >
, XprMatrix< E2, Rows, Cols >
>, Rows, Cols > 
tvmet::element_wise::operator>> (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp
< Fcnl_greater< typename
E1::value_type, typename
E2::value_type >, XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols > >, Rows,
Cols > 
tvmet::operator> (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp< Fcnl_less
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows, Cols >
, XprMatrix< E2, Rows, Cols >
>, Rows, Cols > 
tvmet::operator< (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp
< Fcnl_greater_eq< typename
E1::value_type, typename
E2::value_type >, XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols > >, Rows,
Cols > 
tvmet::operator>= (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp
< Fcnl_less_eq< typename
E1::value_type, typename
E2::value_type >, XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols > >, Rows,
Cols > 
tvmet::operator<= (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp< Fcnl_eq
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows, Cols >
, XprMatrix< E2, Rows, Cols >
>, Rows, Cols > 
tvmet::operator== (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp
< Fcnl_not_eq< typename
E1::value_type, typename
E2::value_type >, XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols > >, Rows,
Cols > 
tvmet::operator!= (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp< Fcnl_and
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows, Cols >
, XprMatrix< E2, Rows, Cols >
>, Rows, Cols > 
tvmet::operator && (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, std::size_t Rows, std::size_t Cols, class E2>
XprMatrix< XprBinOp< Fcnl_or
< typename E1::value_type,
typename E2::value_type >
, XprMatrix< E1, Rows, Cols >
, XprMatrix< E2, Rows, Cols >
>, Rows, Cols > 
tvmet::operator|| (const XprMatrix< E1, Rows, Cols > &lhs, const XprMatrix< E2, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_greater< typename
E::value_type, std::complex< T >
>, XprMatrix< E, Rows, Cols >
, XprLiteral< std::complex< T >
> >, Rows, Cols > 
tvmet::operator> (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_greater< std::complex
< T >, typename E::value_type >
, XprLiteral< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator> (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_less
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator< (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_less
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator< (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_greater_eq< typename
E::value_type, std::complex< T >
>, XprMatrix< E, Rows, Cols >
, XprLiteral< std::complex< T >
> >, Rows, Cols > 
tvmet::operator>= (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_greater_eq
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator>= (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_less_eq< typename
E::value_type, std::complex< T >
>, XprMatrix< E, Rows, Cols >
, XprLiteral< std::complex< T >
> >, Rows, Cols > 
tvmet::operator<= (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_less_eq< std::complex
< T >, typename E::value_type >
, XprLiteral< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator<= (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_eq
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator== (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_eq
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator== (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_not_eq< typename
E::value_type, std::complex< T >
>, XprMatrix< E, Rows, Cols >
, XprLiteral< std::complex< T >
> >, Rows, Cols > 
tvmet::operator!= (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp
< Fcnl_not_eq< std::complex< T >
, typename E::value_type >
, XprLiteral< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator!= (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_and
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator && (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_and
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator && (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_or
< typename E::value_type,
std::complex< T > >, XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
tvmet::operator|| (const XprMatrix< E, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols, class T>
XprMatrix< XprBinOp< Fcnl_or
< std::complex< T >, typename
E::value_type >, XprLiteral
< std::complex< T >
>, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator|| (const std::complex< T > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mod
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::element_wise::operator% (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_mod
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::element_wise::operator% (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_bitxor< typename
E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::element_wise::operator^ (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_bitxor< int, typename
E::value_type >, XprLiteral
< int >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::element_wise::operator^ (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_bitand< typename
E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::element_wise::operator & (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_bitand< int, typename
E::value_type >, XprLiteral
< int >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::element_wise::operator & (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_bitor< typename
E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::element_wise::operator| (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_bitor< int, typename
E::value_type >, XprLiteral
< int >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::element_wise::operator| (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_shl
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::element_wise::operator<< (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_shl
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::element_wise::operator<< (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_shr
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::element_wise::operator>> (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_shr
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::element_wise::operator>> (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< typename
E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator> (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< int, typename
E::value_type >, XprLiteral
< int >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator> (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator< (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator< (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< typename
E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator>= (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< int,
typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator>= (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< typename
E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator<= (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< int, typename
E::value_type >, XprLiteral
< int >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator<= (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator== (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator== (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< typename
E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator!= (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< int, typename
E::value_type >, XprLiteral
< int >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator!= (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator && (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Logical AND operator between XprMatrix and int.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator && (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical AND operator between int and XprMatrix.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< typename E::value_type, int >
, XprMatrix< E, Rows, Cols >
, XprLiteral< int > >, Rows,
Cols > 
tvmet::operator|| (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Logical OR operator between XprMatrix and int.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< int, typename E::value_type >
, XprLiteral< int >, XprMatrix
< E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator|| (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical OR operator between int and XprMatrix.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< typename
E::value_type, float >
, XprMatrix< E, Rows, Cols >
, XprLiteral< float > >, Rows,
Cols > 
tvmet::operator> (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< float,
typename E::value_type >
, XprLiteral< float >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator> (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator< (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator< (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< typename
E::value_type, float >
, XprMatrix< E, Rows, Cols >
, XprLiteral< float > >, Rows,
Cols > 
tvmet::operator>= (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< float,
typename E::value_type >
, XprLiteral< float >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator>= (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< typename
E::value_type, float >
, XprMatrix< E, Rows, Cols >
, XprLiteral< float > >, Rows,
Cols > 
tvmet::operator<= (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< float,
typename E::value_type >
, XprLiteral< float >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator<= (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator== (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator== (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< typename
E::value_type, float >
, XprMatrix< E, Rows, Cols >
, XprLiteral< float > >, Rows,
Cols > 
tvmet::operator!= (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator!= (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator && (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator && (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< typename E::value_type,
float >, XprMatrix< E, Rows,
Cols >, XprLiteral< float >
>, Rows, Cols > 
tvmet::operator|| (const XprMatrix< E, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< float, typename
E::value_type >, XprLiteral
< float >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator|| (float lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< typename
E::value_type, double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< double > >, Rows,
Cols > 
tvmet::operator> (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< double,
typename E::value_type >
, XprLiteral< double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator> (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator< (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator< (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< typename
E::value_type, double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< double > >, Rows,
Cols > 
tvmet::operator>= (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< double,
typename E::value_type >
, XprLiteral< double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator>= (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< typename
E::value_type, double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< double > >, Rows,
Cols > 
tvmet::operator<= (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< double,
typename E::value_type >
, XprLiteral< double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator<= (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator== (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator== (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< typename
E::value_type, double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< double > >, Rows,
Cols > 
tvmet::operator!= (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< double,
typename E::value_type >
, XprLiteral< double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator!= (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator && (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator && (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< typename E::value_type,
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< double >
>, Rows, Cols > 
tvmet::operator|| (const XprMatrix< E, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< double, typename
E::value_type >, XprLiteral
< double >, XprMatrix< E, Rows,
Cols > >, Rows, Cols > 
tvmet::operator|| (double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< typename
E::value_type, long double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< long double >
>, Rows, Cols > 
tvmet::operator> (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater< long double,
typename E::value_type >
, XprLiteral< long double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator> (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator< (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_less
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator< (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< typename
E::value_type, long double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< long double >
>, Rows, Cols > 
tvmet::operator>= (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_greater_eq< long double,
typename E::value_type >
, XprLiteral< long double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator>= (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< typename
E::value_type, long double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< long double >
>, Rows, Cols > 
tvmet::operator<= (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_less_eq< long double,
typename E::value_type >
, XprLiteral< long double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator<= (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator== (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_eq
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator== (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< typename
E::value_type, long double >
, XprMatrix< E, Rows, Cols >
, XprLiteral< long double >
>, Rows, Cols > 
tvmet::operator!= (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_not_eq< long double,
typename E::value_type >
, XprLiteral< long double >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator!= (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator && (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator && (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< typename E::value_type, long
double >, XprMatrix< E, Rows,
Cols >, XprLiteral< long
double > >, Rows, Cols > 
tvmet::operator|| (const XprMatrix< E, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or
< long double, typename
E::value_type >, XprLiteral
< long double >, XprMatrix< E,
Rows, Cols > >, Rows, Cols > 
tvmet::operator|| (long double lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_not
< typename E::value_type >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator! (const XprMatrix< E, Rows, Cols > &m) TVMET_CXX_ALWAYS_INLINE
 Logical Not operator for XprMatrix.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_compl
< typename E::value_type >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator~ (const XprMatrix< E, Rows, Cols > &m) TVMET_CXX_ALWAYS_INLINE
 Bitwise Not operator for XprMatrix.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_neg
< typename E::value_type >
, XprMatrix< E, Rows, Cols >
>, Rows, Cols > 
tvmet::operator- (const XprMatrix< E, Rows, Cols > &m) TVMET_CXX_ALWAYS_INLINE
 Negate operator for XprMatrix.


Define Documentation

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template <class E, std::size_t Rows, std::size_t Cols>        \
XprMatrix<                  \
  XprUnOp<                  \
    Fcnl_##NAME<typename E::value_type>,          \
    XprMatrix<E, Rows, Cols>              \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const XprMatrix<E, Rows, Cols>& m) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP,
TP   ) 

Value:

template<class E, std::size_t Rows, std::size_t Cols>       \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<typename E::value_type, TP >,         \
    XprMatrix<E, Rows, Cols>,             \
    XprLiteral< TP >                \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const XprMatrix<E, Rows, Cols>& lhs,         \
       TP rhs) TVMET_CXX_ALWAYS_INLINE;         \
                    \
template<class E, std::size_t Rows, std::size_t Cols>       \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<TP, typename E::value_type>,          \
    XprLiteral< TP >,               \
    XprMatrix<E, Rows, Cols>              \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (TP lhs,                \
       const XprMatrix<E, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E, std::size_t Rows, std::size_t Cols, class T>      \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<typename E::value_type, std::complex<T> >,      \
    XprMatrix<E, Rows, Cols>,             \
    XprLiteral< std::complex<T> >           \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const XprMatrix<E, Rows, Cols>& lhs,         \
       const std::complex<T>& rhs) TVMET_CXX_ALWAYS_INLINE;   \
                    \
template<class E, std::size_t Rows, std::size_t Cols, class T>      \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<std::complex<T>, typename E::value_type>,     \
    XprLiteral< std::complex<T> >,            \
    XprMatrix<E, Rows, Cols>              \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const std::complex<T>& lhs,          \
       const XprMatrix<E, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E1, std::size_t Rows, std::size_t Cols,        \
         class E2>                \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,    \
    XprMatrix<E1, Rows, Cols>,              \
    XprMatrix<E2, Rows, Cols>             \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const XprMatrix<E1, Rows, Cols>& lhs,        \
       const XprMatrix<E2, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E, std::size_t Rows, std::size_t Cols, class T>      \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<typename E::value_type, std::complex<T> >,      \
    XprMatrix<E, Rows, Cols>,             \
    XprLiteral< std::complex<T> >           \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const XprMatrix<E, Rows, Cols>& lhs,       \
       const std::complex<T>& rhs) TVMET_CXX_ALWAYS_INLINE;   \
                    \
template<class E, std::size_t Rows, std::size_t Cols, class T>      \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<std::complex<T>, typename E::value_type>,     \
    XprLiteral< std::complex<T> >,            \
    XprMatrix<E, Rows, Cols>              \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const std::complex<T>& lhs,          \
       const XprMatrix<E, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP,
POD   ) 

Value:

template<class E, std::size_t Rows, std::size_t Cols>       \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<typename E::value_type, POD >,          \
    XprMatrix<E, Rows, Cols>,             \
    XprLiteral< POD >               \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (const XprMatrix<E, Rows, Cols>& lhs,         \
       POD rhs) TVMET_CXX_ALWAYS_INLINE;          \
                    \
template<class E,std::size_t Rows, std::size_t Cols>        \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<POD, typename E::value_type>,         \
    XprLiteral< POD >,                \
    XprMatrix<E, Rows, Cols>              \
  >,                    \
  Rows, Cols                  \
>                   \
operator OP (POD lhs,                 \
       const XprMatrix<E, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E1, std::size_t Rows1, std::size_t Cols1,      \
         class E2>                \
XprMatrix<                  \
  XprBinOp<                 \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,    \
    XprMatrix<E1, Rows1, Cols1>,            \
    XprMatrix<E2, Rows1, Cols1>             \
  >,                    \
  Rows1, Cols1                  \
>                   \
operator OP (const XprMatrix<E1, Rows1, Cols1>& lhs,        \
       const XprMatrix<E2, Rows1, Cols1>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template <class E, std::size_t Rows, std::size_t Cols>      \
inline                  \
XprMatrix<                \
  XprUnOp<                \
    Fcnl_##NAME<typename E::value_type>,        \
    XprMatrix<E, Rows, Cols>            \
  >,                  \
  Rows, Cols                \
>                 \
operator OP (const XprMatrix<E, Rows, Cols>& m) {     \
  typedef XprUnOp<              \
    Fcnl_##NAME<typename E::value_type>,        \
    XprMatrix<E, Rows, Cols>            \
  >                expr_type; \
  return XprMatrix<expr_type, Rows, Cols>(expr_type(m));    \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP,
TP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class E1, std::size_t Rows, std::size_t Cols,      \
         class E2>              \
inline                  \
XprMatrix<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprMatrix<E1, Rows, Cols>,            \
    XprMatrix<E2, Rows, Cols>           \
  >,                  \
  Rows, Cols                \
>                 \
operator OP (const XprMatrix<E1, Rows, Cols>& lhs,      \
       const XprMatrix<E2, Rows, Cols>& rhs) {      \
  typedef XprBinOp<             \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprMatrix<E1, Rows, Cols>,            \
    XprMatrix<E2, Rows, Cols>           \
  >                 expr_type;  \
  return XprMatrix<expr_type, Rows, Cols>(expr_type(lhs, rhs));   \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class E, std::size_t Rows, std::size_t Cols, class T>  \
inline                \
XprMatrix<              \
  XprBinOp<             \
    Fcnl_##NAME<typename E::value_type, std::complex<T> >,  \
    XprMatrix<E, Rows, Cols>,         \
    XprLiteral< std::complex<T> >       \
  >,                \
  Rows, Cols              \
>               \
operator OP (const XprMatrix<E, Rows, Cols>& lhs,   \
       const std::complex<T>& rhs) {      \
  return NAME (lhs, rhs);         \
}               \
                \
template<class E, std::size_t Rows, std::size_t Cols, class T>  \
inline                \
XprMatrix<              \
  XprBinOp<             \
    Fcnl_##NAME<std::complex<T>, typename E::value_type>, \
    XprLiteral< std::complex<T> >,        \
    XprMatrix<E, Rows, Cols>          \
  >,                \
  Rows, Cols              \
>               \
operator OP (const std::complex<T>& lhs,      \
       const XprMatrix<E, Rows, Cols>& rhs) {   \
  return NAME (lhs, rhs);         \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP,
POD   ) 

Value:

template<class E, std::size_t Rows, std::size_t Cols>   \
inline                \
XprMatrix<              \
  XprBinOp<             \
    Fcnl_##NAME<typename E::value_type, POD >,      \
    XprMatrix<E, Rows, Cols>,         \
    XprLiteral< POD >           \
  >,                \
  Rows, Cols              \
>               \
operator OP (const XprMatrix<E, Rows, Cols>& lhs, POD rhs) {  \
  return NAME (lhs, rhs);         \
}               \
                \
template<class E,std::size_t Rows, std::size_t Cols>    \
inline                \
XprMatrix<              \
  XprBinOp<             \
    Fcnl_##NAME<POD, typename E::value_type>,     \
    XprLiteral< POD >,            \
    XprMatrix<E, Rows, Cols>          \
  >,                \
  Rows, Cols              \
>               \
operator OP (POD lhs, const XprMatrix<E, Rows, Cols>& rhs) {  \
  return NAME (lhs, rhs);         \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class E1, std::size_t Rows1, std::size_t Cols1,    \
         class E2>              \
inline                  \
XprMatrix<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprMatrix<E1, Rows1, Cols1>,          \
    XprMatrix<E2, Rows1, Cols1>           \
  >,                  \
  Rows1, Cols1                \
>                 \
operator OP (const XprMatrix<E1, Rows1, Cols1>& lhs,      \
       const XprMatrix<E2, Rows1, Cols1>& rhs) {      \
  return NAME (lhs, rhs);           \
}


Author: