|
Tiny Vector Matrix library using Expression Templates | Sourceforge Project Page |
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 TVMET_DECLARE_MACRO | ( | NAME | ) |
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 | |||
) |
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 | ) |
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 | ) |
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 | |||
) |
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 | ) |
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))); \ }
Author: |