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

include/tvmet/MatrixImpl.h File Reference

#include <iomanip>
#include <tvmet/Functional.h>
#include <tvmet/Io.h>

Include dependency graph for MatrixImpl.h:

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_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME)


Define Documentation

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template<class T, std::size_t NRows, std::size_t NCols>             \
template<class E>                     \
inline                          \
Matrix<T, NRows, NCols>&                    \
Matrix<T, NRows, NCols>::alias_##NAME (const XprMatrix<E, Rows, Cols>& rhs) {       \
  typedef Matrix<T, NRows, NCols>       temp_type;          \
  temp_type(rhs).assign_to(*this, Fcnl_##NAME<value_type, typename E::value_type>()); \
  return *this;                       \
}

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template<class T1, std::size_t NRows, std::size_t NCols>               \
template <class T2>                        \
inline                             \
Matrix<T1, NRows, NCols>&                      \
Matrix<T1, NRows, NCols>::alias_##NAME (const Matrix<T2, Rows, Cols>& rhs) {           \
  this->alias_##NAME( XprMatrix<typename Matrix<T2, Rows, Cols>::ConstReference, Rows, Cols>(rhs.const_ref()) ); \
  return *this;                          \
}

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template<class T, std::size_t NRows, std::size_t NCols>        \
template<class E>                \
inline                     \
Matrix<T, NRows, NCols>&               \
Matrix<T, NRows, NCols>::M_##NAME (const XprMatrix<E, Rows, Cols>& rhs) {  \
  rhs.assign_to(*this, Fcnl_##NAME<value_type, typename E::value_type>()); \
  return *this;                  \
}

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template<class T1, std::size_t NRows, std::size_t NCols>                 \
template <class T2>                          \
inline                               \
Matrix<T1, NRows, NCols>&                        \
Matrix<T1, NRows, NCols>::M_##NAME (const Matrix<T2, Rows, Cols>& rhs) {             \
  this->M_##NAME( XprMatrix<typename Matrix<T2, Rows, Cols>::ConstReference, Rows, Cols>(rhs.const_ref()) ); \
  return *this;                            \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class T, std::size_t NRows, std::size_t NCols>       \
inline                    \
Matrix<T, NRows, NCols>&              \
Matrix<T, NRows, NCols>::operator OP (std::size_t rhs) {      \
  typedef XprLiteral<value_type>      expr_type;  \
  this->M_##NAME(XprMatrix<expr_type, Rows, Cols>(expr_type(rhs))); \
  return *this;                 \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class T, std::size_t NRows, std::size_t NCols>       \
inline                    \
Matrix<T, NRows, NCols>&              \
Matrix<T, NRows, NCols>::operator OP (value_type rhs) {       \
  typedef XprLiteral<value_type>      expr_type;  \
  this->M_##NAME(XprMatrix<expr_type, Rows, Cols>(expr_type(rhs))); \
  return *this;                 \
}


Author: