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

Namespaces | Defines
include/tvmet/VectorImpl.h File Reference
#include <iomanip>
#include <tvmet/Functional.h>
#include <tvmet/Io.h>
Include dependency graph for VectorImpl.h:
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_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,
  OP 
)
Value:
template<class T, std::size_t Sz>         \
inline                  \
Vector<T, Sz>& Vector<T, Sz>::operator OP (value_type rhs) {    \
  typedef XprLiteral<value_type>      expr_type;  \
  this->M_##NAME(XprVector<expr_type, Size>(expr_type(rhs)));   \
  return *this;               \
}
#define TVMET_IMPLEMENT_MACRO (   NAME)
Value:
template<class T, std::size_t Sz>                 \
template <class E>                      \
inline                          \
Vector<T, Sz>&                        \
Vector<T, Sz>::alias_##NAME (const XprVector<E, Size>& rhs) {           \
  typedef Vector<T, Sz>         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 Sz>                     \
template <class T2>                        \
inline                             \
Vector<T1, Sz>&                          \
Vector<T1, Sz>::alias_##NAME (const Vector<T2, Size>& rhs) {               \
  this->alias_##NAME( XprVector<typename Vector<T2, Size>::ConstReference, Size>(rhs.const_ref()) ); \
  return *this;                          \
}
#define TVMET_IMPLEMENT_MACRO (   NAME)
Value:
template<class T, std::size_t Sz>            \
template <class E>                 \
inline                     \
Vector<T, Sz>&                   \
Vector<T, Sz>::M_##NAME (const XprVector<E, Size>& 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 Sz>                  \
template <class T2>                     \
inline Vector<T1, Sz>&                      \
Vector<T1, Sz>::M_##NAME (const Vector<T2, Size>& rhs) {            \
  this->M_##NAME( XprVector<typename Vector<T2, Size>::ConstReference, Size>(rhs.const_ref()) );  \
  return *this;                       \
}
#define TVMET_IMPLEMENT_MACRO (   NAME,
  OP 
)
Value:
template<class T, std::size_t Sz>         \
inline                  \
Vector<T, Sz>& Vector<T, Sz>::operator OP (std::size_t rhs) {   \
  typedef XprLiteral<value_type>      expr_type;  \
  this->M_##NAME(XprVector<expr_type, Size>(expr_type(rhs)));   \
  return *this;               \
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Defines

Author: