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

include/tvmet/MatrixBinaryFunctions.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

Defines

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

Functions

template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_atan2<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::atan2 (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 arcus tangent of two variables function for two Matrizes.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_atan2<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::atan2 (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 arcus tangent of two variables function on XprMatrix and Matrix.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_atan2<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::atan2 (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 arcus tangent of two variables function on Matrix and XprMatrix.
template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_drem<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::drem (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function for two Matrizes.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_drem<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::drem (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on XprMatrix and Matrix.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_drem<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::drem (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and XprMatrix.
template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_fmod<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::fmod (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function for two Matrizes.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_fmod<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::fmod (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on XprMatrix and Matrix.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_fmod<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::fmod (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and XprMatrix.
template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_hypot<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::hypot (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Euclidean distance function for two Matrizes.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_hypot<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::hypot (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Euclidean distance function on XprMatrix and Matrix.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_hypot<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::hypot (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Euclidean distance function on Matrix and XprMatrix.
template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_jn<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::jn (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function for two Matrizes.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_jn<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::jn (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on XprMatrix and Matrix.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_jn<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::jn (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and XprMatrix.
template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_yn<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::yn (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function for two Matrizes.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_yn<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::yn (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on XprMatrix and Matrix.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_yn<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::yn (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and XprMatrix.
template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::pow (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 power function for two Matrizes.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::pow (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 power function on XprMatrix and Matrix.
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::pow (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 power function on Matrix and XprMatrix.
template<class T1, class T2, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_polar<
T1, T2 >, MatrixConstReference<
T1, Rows, Cols >, MatrixConstReference<
T2, Rows, Cols > >, Rows,
Cols > 
tvmet::polar (const Matrix< T1, Rows, Cols > &lhs, const Matrix< T2, Cols, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_polar<
typename E::value_type, T >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::polar (const XprMatrix< E, Rows, Cols > &lhs, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_polar<
T, typename E::value_type >,
MatrixConstReference< T,
Rows, Cols >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::polar (const Matrix< T, Rows, Cols > &lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_atan2<
T, int >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
int > >, Rows, Cols > 
tvmet::atan2 (const Matrix< T, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 arcus tangent of two variables function on Matrix and int.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_drem<
T, int >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
int > >, Rows, Cols > 
tvmet::drem (const Matrix< T, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and int.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_fmod<
T, int >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
int > >, Rows, Cols > 
tvmet::fmod (const Matrix< T, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and int.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_hypot<
T, int >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
int > >, Rows, Cols > 
tvmet::hypot (const Matrix< T, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Euclidean distance function on Matrix and int.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_jn<
T, int >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
int > >, Rows, Cols > 
tvmet::jn (const Matrix< T, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and int.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_yn<
T, int >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
int > >, Rows, Cols > 
tvmet::yn (const Matrix< T, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and int.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow<
T, int >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
int > >, Rows, Cols > 
tvmet::pow (const Matrix< T, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 power function on Matrix and int.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_atan2<
T, float >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
float > >, Rows, Cols > 
tvmet::atan2 (const Matrix< T, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
 arcus tangent of two variables function on Matrix and float.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_drem<
T, float >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
float > >, Rows, Cols > 
tvmet::drem (const Matrix< T, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and float.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_fmod<
T, float >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
float > >, Rows, Cols > 
tvmet::fmod (const Matrix< T, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and float.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_hypot<
T, float >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
float > >, Rows, Cols > 
tvmet::hypot (const Matrix< T, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
 Euclidean distance function on Matrix and float.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_jn<
T, float >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
float > >, Rows, Cols > 
tvmet::jn (const Matrix< T, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and float.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_yn<
T, float >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
float > >, Rows, Cols > 
tvmet::yn (const Matrix< T, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and float.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow<
T, float >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
float > >, Rows, Cols > 
tvmet::pow (const Matrix< T, Rows, Cols > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
 power function on Matrix and float.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_atan2<
T, double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
double > >, Rows, Cols > 
tvmet::atan2 (const Matrix< T, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
 arcus tangent of two variables function on Matrix and double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_drem<
T, double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
double > >, Rows, Cols > 
tvmet::drem (const Matrix< T, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_fmod<
T, double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
double > >, Rows, Cols > 
tvmet::fmod (const Matrix< T, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_hypot<
T, double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
double > >, Rows, Cols > 
tvmet::hypot (const Matrix< T, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
 Euclidean distance function on Matrix and double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_jn<
T, double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
double > >, Rows, Cols > 
tvmet::jn (const Matrix< T, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_yn<
T, double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
double > >, Rows, Cols > 
tvmet::yn (const Matrix< T, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow<
T, double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
double > >, Rows, Cols > 
tvmet::pow (const Matrix< T, Rows, Cols > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
 power function on Matrix and double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_atan2<
T, long double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
long double > >, Rows, Cols > 
tvmet::atan2 (const Matrix< T, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
 arcus tangent of two variables function on Matrix and long double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_drem<
T, long double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
long double > >, Rows, Cols > 
tvmet::drem (const Matrix< T, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and long double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_fmod<
T, long double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
long double > >, Rows, Cols > 
tvmet::fmod (const Matrix< T, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
 floating-point remainder function on Matrix and long double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_hypot<
T, long double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
long double > >, Rows, Cols > 
tvmet::hypot (const Matrix< T, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
 Euclidean distance function on Matrix and long double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_jn<
T, long double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
long double > >, Rows, Cols > 
tvmet::jn (const Matrix< T, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and long double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_yn<
T, long double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
long double > >, Rows, Cols > 
tvmet::yn (const Matrix< T, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
 Bessel function on Matrix and long double.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow<
T, long double >, MatrixConstReference<
T, Rows, Cols >, XprLiteral<
long double > >, Rows, Cols > 
tvmet::pow (const Matrix< T, Rows, Cols > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
 power function on Matrix and long double.


Define Documentation

#define TVMET_DECLARE_MACRO ( NAME,
TP   ) 

Value:

template<class T, std::size_t Rows, std::size_t Cols>     \
XprMatrix<                \
  XprBinOp<               \
    Fcnl_##NAME<T, TP >,            \
    MatrixConstReference<T, Rows, Cols>,        \
    XprLiteral< TP >              \
  >,                  \
  Rows, Cols                \
>                 \
NAME(const Matrix<T, Rows, Cols>& lhs, TP rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
TP   ) 

Value:

template<class T, std::size_t Rows, std::size_t Cols>     \
inline                  \
XprMatrix<                \
  XprBinOp<               \
    Fcnl_##NAME<T, TP >,            \
    MatrixConstReference<T, Rows, Cols>,        \
    XprLiteral< TP >              \
  >,                  \
  Rows, Cols                \
>                 \
NAME(const Matrix<T, Rows, Cols>& lhs, TP rhs) {      \
  typedef XprBinOp<             \
    Fcnl_##NAME<T, TP >,            \
    MatrixConstReference<T, Rows, Cols>,        \
    XprLiteral< TP >              \
  >             expr_type;  \
  return XprMatrix<expr_type, Rows, Cols>(        \
    expr_type(lhs.const_ref(), XprLiteral< TP >(rhs)));     \
}

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 


Author: