Tiny Vector Matrix library using Expression Templates | Sourceforge Project Page |
#include <tvmet/xpr/Matrix.h>
Inheritance diagram for tvmet::XprMatrix< E, NRows, NCols >:
Specifically, XprMatrix is the class that wraps the expression, and the expression itself is represented by the template parameter E. The class XprMatrix is known as an anonymizing expression wrapper because it can hold any subexpression of arbitrary complexity, allowing clients to work with any expression by holding on to it via the wrapper, without having to know the name of the type object that actually implements the expression.
Public Types | |
enum | { Rows = NRows, Cols = NCols, Size = Rows * Cols } |
Dimensions. More... | |
enum | { ops_assign = Rows * Cols, ops = E::ops, use_meta = ops_assign < TVMET_COMPLEXITY_M_ASSIGN_TRIGGER ? true : false } |
Complexity counter. More... | |
typedef E::value_type | value_type |
Public Member Functions | |
XprMatrix (const E &e) | |
Constructor. | |
value_type | operator() (std::size_t i, std::size_t j) const |
access by index. | |
template<class Dest, class Assign> | |
void | assign_to (Dest &dest, const Assign &assign_fn) const |
assign this expression to Matrix dest. | |
void | print_xpr (std::ostream &os, std::size_t l=0) const |
Private Member Functions | |
XprMatrix () | |
XprMatrix & | operator= (const XprMatrix &) |
Static Private Member Functions | |
template<class Dest, class Src, class Assign> | |
static void | do_assign (dispatch< true >, Dest &dest, const Src &src, const Assign &assign_fn) |
Wrapper for meta assign. | |
template<class Dest, class Src, class Assign> | |
static void | do_assign (dispatch< false >, Dest &dest, const Src &src, const Assign &assign_fn) |
Wrapper for loop assign. | |
Private Attributes | |
const E | m_expr |
typedef E::value_type tvmet::XprMatrix< E, NRows, NCols >::value_type |
anonymous enum |
anonymous enum |
tvmet::XprMatrix< E, NRows, NCols >::XprMatrix | ( | ) | [private] |
tvmet::XprMatrix< E, NRows, NCols >::XprMatrix | ( | const E & | e | ) | [inline, explicit] |
Constructor.
XprMatrix& tvmet::XprMatrix< E, NRows, NCols >::operator= | ( | const XprMatrix< E, NRows, NCols > & | ) | [private] |
value_type tvmet::XprMatrix< E, NRows, NCols >::operator() | ( | std::size_t | i, | |
std::size_t | j | |||
) | const [inline] |
access by index.
static void tvmet::XprMatrix< E, NRows, NCols >::do_assign | ( | dispatch< true > | , | |
Dest & | dest, | |||
const Src & | src, | |||
const Assign & | assign_fn | |||
) | [inline, static, private] |
Wrapper for meta assign.
static void tvmet::XprMatrix< E, NRows, NCols >::do_assign | ( | dispatch< false > | , | |
Dest & | dest, | |||
const Src & | src, | |||
const Assign & | assign_fn | |||
) | [inline, static, private] |
Wrapper for loop assign.
void tvmet::XprMatrix< E, NRows, NCols >::assign_to | ( | Dest & | dest, | |
const Assign & | assign_fn | |||
) | const [inline] |
assign this expression to Matrix dest.
void tvmet::XprMatrix< E, NRows, NCols >::print_xpr | ( | std::ostream & | os, | |
std::size_t | l = 0 | |||
) | const [inline] |
const E tvmet::XprMatrix< E, NRows, NCols >::m_expr [private] |
Author: |