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

Namespaces | Defines
include/tvmet/xpr/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
 

The namespace for the Tiny Vector Matrix using Expression Templates Libary.


Defines

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

Define Documentation

#define TVMET_DECLARE_MACRO (   NAME)
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                \
>                 \
NAME(const XprMatrix<E1, Rows, Cols>& lhs,        \
     const XprMatrix<E2, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;
#define TVMET_DECLARE_MACRO (   NAME,
  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            \
>             \
NAME(const XprMatrix<E, Rows, Cols>& lhs,     \
     TP rhs) TVMET_CXX_ALWAYS_INLINE;
#define TVMET_DECLARE_MACRO (   NAME)
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              \
>               \
NAME(const XprMatrix<E, Rows, Cols>& lhs,       \
     const std::complex<T>& rhs) TVMET_CXX_ALWAYS_INLINE;
#define TVMET_IMPLEMENT_MACRO (   NAME)
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                    \
>                     \
NAME(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,
  TP 
)
Value:
template<class E, std::size_t Rows, std::size_t Cols>     \
inline                  \
XprMatrix<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E::value_type, TP >,       \
    XprMatrix<E, Rows, Cols>,           \
    XprLiteral< TP >              \
  >,                  \
  Rows, Cols                \
>                 \
NAME(const XprMatrix<E, Rows, Cols>& lhs, TP rhs) {     \
  typedef XprBinOp<             \
    Fcnl_##NAME<typename E::value_type, TP >,       \
    XprMatrix<E, Rows, Cols>,           \
    XprLiteral< TP >              \
  >             expr_type;  \
  return XprMatrix<expr_type, Rows, Cols>(        \
    expr_type(lhs, XprLiteral< TP >(rhs)));       \
}
#define TVMET_IMPLEMENT_MACRO (   NAME)
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                \
>                 \
NAME(const XprMatrix<E, Rows, Cols>& lhs, const std::complex<T>& rhs) { \
  typedef XprBinOp<             \
    Fcnl_##NAME<typename E::value_type, std::complex<T> >,    \
    XprMatrix<E, Rows, Cols>,           \
    XprLiteral< std::complex<T> >         \
  >             expr_type;  \
  return XprMatrix<expr_type, Rows, Cols>(        \
    expr_type(lhs, XprLiteral< std::complex<T> >(rhs)));    \
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Defines

Author: