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

Namespaces | Classes | Functions | Variables
tvmet Namespace Reference

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

Namespaces

namespace  element_wise
 

Operators inside this namespace does elementwise operations.


namespace  loop
 

Loop stuff inside here.


namespace  meta
 

Meta stuff inside here.


namespace  util
 

Miscellaneous utility functions used.


Classes

class  AliasProxy
 Assign proxy for alias Matrices and Vectors. More...
class  Fcnl_assign
 Binary operator for assign operations. More...
class  Fcnl_add_eq
class  Fcnl_sub_eq
class  Fcnl_mul_eq
class  Fcnl_div_eq
class  Fcnl_mod_eq
class  Fcnl_xor_eq
class  Fcnl_and_eq
class  Fcnl_or_eq
class  Fcnl_shl_eq
class  Fcnl_shr_eq
class  Fcnl_add
class  Fcnl_sub
class  Fcnl_mul
class  Fcnl_div
class  Fcnl_mod
class  Fcnl_bitxor
class  Fcnl_bitand
class  Fcnl_bitor
class  Fcnl_shl
class  Fcnl_shr
class  Fcnl_greater
class  Fcnl_less
class  Fcnl_greater_eq
class  Fcnl_less_eq
class  Fcnl_eq
class  Fcnl_not_eq
class  Fcnl_and
class  Fcnl_or
class  Fcnl_atan2
class  Fcnl_fmod
class  Fcnl_pow
class  Fcnl_drem
class  Fcnl_hypot
class  Fcnl_jn
class  Fcnl_yn
class  Fcnl_polar
 Functional for polar. More...
struct  Fcnl_polar< T, T >
class  Fcnl_swap
 Binary operator for swapping values using temporaries. More...
class  CommaInitializer
 Initialize classes using a comma separated lists. More...
struct  CompileTimeError< true >
class  matrix_tag
 For use with Extremum to simplify max handling. More...
class  vector_tag
 For use with Extremum to simplify max handling. More...
class  Extremum
 Generell class for storing extremums determined by min/max. More...
class  Extremum< T1, T2, vector_tag >
class  Extremum< T1, T2, matrix_tag >
class  Functional
 Base class for all binary und unary functionals. More...
class  BinaryFunctional
 Base class for all binary functions. More...
class  UnaryFunctional
 Base class for all unary functions. More...
class  IoPrintHelper
 Determines the number of digits regarding the sign of the container. More...
class  MatrixConstReference
 value iterator for ET More...
class  Matrix
 A tiny matrix class. More...
class  NumericTraits
 Traits for integral types for operations. More...
struct  NumericTraits< char >
struct  NumericTraits< unsigned char >
struct  NumericTraits< short int >
struct  NumericTraits< short unsigned int >
struct  NumericTraits< int >
struct  NumericTraits< unsigned int >
struct  NumericTraits< long >
struct  NumericTraits< unsigned long >
struct  NumericTraits< float >
struct  NumericTraits< double >
struct  NumericTraits< long double >
struct  NumericTraits< std::complex< int > >
struct  NumericTraits< std::complex< unsigned int > >
struct  NumericTraits< std::complex< long > >
struct  NumericTraits< std::complex< unsigned long > >
struct  NumericTraits< std::complex< float > >
struct  NumericTraits< std::complex< double > >
struct  NumericTraits< std::complex< long double > >
class  TvmetBase
 Base class Used for static polymorph call of print_xpr. More...
class  IndentLevel
 Prints the level indent. More...
struct  dispatch< true >
struct  dispatch< false >
class  PrecisionTraits
 Declaring ranks of types to avoid specializing. More...
struct  PrecisionTraits< int >
struct  PrecisionTraits< unsigned int >
struct  PrecisionTraits< long >
struct  PrecisionTraits< unsigned long >
struct  PrecisionTraits< float >
struct  PrecisionTraits< double >
struct  PrecisionTraits< long double >
struct  PrecisionTraits< std::complex< int > >
struct  PrecisionTraits< std::complex< unsigned int > >
struct  PrecisionTraits< std::complex< long > >
struct  PrecisionTraits< std::complex< unsigned long > >
struct  PrecisionTraits< std::complex< float > >
struct  PrecisionTraits< std::complex< double > >
struct  PrecisionTraits< std::complex< long double > >
class  AutopromoteTraits
 The promoted types traits. More...
struct  AutopromoteTraits< bool >
struct  AutopromoteTraits< char >
struct  AutopromoteTraits< unsigned char >
struct  AutopromoteTraits< short int >
struct  AutopromoteTraits< short unsigned int >
class  promoteTo
 Promote to T1. More...
struct  promoteTo< T1, T2, 0 >
class  PromoteTraits
 Promote type traits. More...
class  Fcnl_conj
 > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" More...
struct  Fcnl_conj< std::complex< T > >
class  VectorConstReference
 Const value iterator for ET. More...
class  Vector
 Compile time fixed length vector with evaluation on compile time. More...
class  XprBinOp
 Binary operators working on two sub expressions. More...
class  XprEval
 evaluate the expression More...
class  XprIdentity
 Expression for the identity matrix. More...
class  XprLiteral
 Specify literals like scalars into the expression. More...
class  XprMatrix
 Represents the expression for vectors at any node in the parse tree. More...
class  XprMatrixCol
 Expression on matrix used for access on the column vector. More...
class  XprMatrixDiag
 Expression on matrix used for access on the diagonal vector. More...
class  XprMatrixRow
 Expression on matrix used for access on the row vector. More...
class  XprMatrixTranspose
 Expression for transpose matrix. More...
class  XprMMProduct
 Expression for matrix-matrix product. More...
class  XprMMProductTransposed
 Expression for transpose(matrix-matrix product). More...
class  XprMMtProduct
 Expression for matrix-matrix product. More...
class  XprMtMProduct
 Expression for product of transposed(matrix)-matrix product. More...
class  XprMtVProduct
 Expression for matrix-transposed vector product using formula

\[ M^T\,v \]

. More...

class  XprMVProduct
 Expression for matrix-vector product using formula

\[ M\,v \]

. More...

class  XprNull
 Null object design pattern. More...
class  XprUnOp
 Unary operator working on one subexpression. More...
class  XprVector
 Represents the expression for vectors at any node in the parse tree. More...

Functions

template<class E >
AliasProxy< E > alias (E &expr)
 Simplify syntax for alias Matrices and Vectors, where aliasing left hand values appear in the expression.
template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow
< T, std::complex< T >
>, MatrixConstReference< T,
Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
pow (const Matrix< T, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
 power function on Matrix and std::complex<T>.
template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow
< std::complex< T >
, std::complex< T >
>, MatrixConstReference
< std::complex< T >, Rows,
Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
pow (const Matrix< std::complex< T >, Rows, Cols > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow
< std::complex< T >, T >
, MatrixConstReference
< std::complex< T >, Rows,
Cols >, XprLiteral< T >
>, Rows, Cols > 
pow (const Matrix< std::complex< T >, Rows, Cols > &lhs, const T &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_pow
< std::complex< T >, int >
, MatrixConstReference
< std::complex< T >, Rows,
Cols >, XprLiteral< int >
>, Rows, Cols > 
pow (const Matrix< std::complex< T >, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp
< Fcnl_polar< T, T >
, MatrixConstReference< T,
Rows, Cols >, XprLiteral< T >
>, Rows, Cols > 
polar (const Matrix< T, Rows, Cols > &lhs, const T &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E , std::size_t Rows, std::size_t Cols>
bool all_elements (const XprMatrix< E, Rows, Cols > &e)
 check on statements for all elementsThis is for use with boolean operators like
template<class E , std::size_t Rows, std::size_t Cols>
bool any_elements (const XprMatrix< E, Rows, Cols > &e)
 check on statements for any elementsThis is for use with boolean operators like
template<class E1 , class T2 , class T3 , std::size_t Rows, std::size_t Cols>
XprMatrix< XprEval< XprMatrix
< E1, Rows, Cols >
, MatrixConstReference< T2,
Rows, Cols >
, MatrixConstReference< T3,
Rows, Cols > >, Rows, Cols > 
eval (const XprMatrix< E1, Rows, Cols > &e1, const Matrix< T2, Rows, Cols > &m2, const Matrix< T3, Rows, Cols > &m3)
 Evals the matrix expressions.
template<class E1 , class T2 , class E3 , std::size_t Rows, std::size_t Cols>
XprMatrix< XprEval< XprMatrix
< E1, Rows, Cols >
, MatrixConstReference< T2,
Rows, Cols >, XprMatrix< E3,
Rows, Cols > >, Rows, Cols > 
eval (const XprMatrix< E1, Rows, Cols > &e1, const Matrix< T2, Rows, Cols > &m2, const XprMatrix< E3, Rows, Cols > &e3)
 Evals the matrix expressions.
template<class E1 , class E2 , class T3 , std::size_t Rows, std::size_t Cols>
XprMatrix< XprEval< XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols >
, MatrixConstReference< T3,
Rows, Cols > >, Rows, Cols > 
eval (const XprMatrix< E1, Rows, Cols > &e1, const XprMatrix< E2, Rows, Cols > &e2, const Matrix< T3, Rows, Cols > &m3)
 Evals the matrix expressions.
template<class E1 , class E2 , class E3 , std::size_t Rows, std::size_t Cols>
XprMatrix< XprEval< XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols >, XprMatrix
< E3, Rows, Cols > >, Rows,
Cols > 
eval (const XprMatrix< E1, Rows, Cols > &e1, const XprMatrix< E2, Rows, Cols > &e2, const XprMatrix< E3, Rows, Cols > &e3)
 Evals the matrix expressions.
template<class E , std::size_t Rows, std::size_t Cols, class T >
XprMatrix< XprEval< XprMatrix
< E, Rows, Cols >, XprLiteral
< std::complex< T >
>, XprLiteral< std::complex
< T > > >, Rows, Cols > 
eval (const XprMatrix< E, Rows, Cols > &e, const std::complex< T > &x2, const std::complex< T > &x3)
 Evals the matrix expressions.
template<class E1 , class E3 , std::size_t Rows, std::size_t Cols, class T >
XprMatrix< XprEval< XprMatrix
< E1, Rows, Cols >, XprLiteral
< std::complex< T >
>, XprMatrix< E3, Rows, Cols >
>, Rows, Cols > 
eval (const XprMatrix< E1, Rows, Cols > &e1, const std::complex< T > &x2, const XprMatrix< E3, Rows, Cols > &e3)
 Evals the matrix expressions.
template<class E1 , class E2 , std::size_t Rows, std::size_t Cols, class T >
XprMatrix< XprEval< XprMatrix
< E1, Rows, Cols >, XprMatrix
< E2, Rows, Cols >, XprLiteral
< std::complex< T > > >, Rows,
Cols > 
eval (const XprMatrix< E1, Rows, Cols > &e1, const XprMatrix< E2, Rows, Cols > &e2, const std::complex< T > &x3)
 Evals the matrix expressions.
 TVMET_DECLARE_MACRO (add) TVMET_DECLARE_MACRO(sub) namespace element_wise
template<class T1 , std::size_t Rows1, std::size_t Cols1, class T2 , std::size_t Cols2>
XprMatrix< XprMMProduct
< MatrixConstReference< T1,
Rows1, Cols1 >, Rows1, Cols1,
MatrixConstReference< T2,
Cols1, Cols2 >, Cols2 >, Rows1,
Cols2 > 
prod (const Matrix< T1, Rows1, Cols1 > &lhs, const Matrix< T2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the matrix-matrix-product.
template<class E1 , std::size_t Rows1, std::size_t Cols1, class T2 , std::size_t Cols2>
XprMatrix< XprMMProduct
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1,
MatrixConstReference< T2,
Cols1, Cols2 >, Cols2 >, Rows1,
Cols2 > 
prod (const XprMatrix< E1, Rows1, Cols1 > &lhs, const Matrix< T2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of XprMatrix and Matrix.
template<class T1 , std::size_t Rows1, std::size_t Cols1, class E2 , std::size_t Cols2>
XprMatrix< XprMMProduct
< MatrixConstReference< T1,
Rows1, Cols1 >, Rows1, Cols1,
XprMatrix< E2, Cols1, Cols2 >
, Cols2 >, Rows1, Cols2 > 
prod (const Matrix< T1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of Matrix and XprMatrix.
template<class T1 , std::size_t Rows1, std::size_t Cols1, class T2 , std::size_t Cols2>
XprMatrix
< XprMMProductTransposed
< MatrixConstReference< T1,
Rows1, Cols1 >, Rows1, Cols1,
MatrixConstReference< T2,
Cols1, Cols2 >, Cols2 >, Cols2,
Rows1
trans_prod (const Matrix< T1, Rows1, Cols1 > &lhs, const Matrix< T2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the trans(matrix-matrix-product)Perform on given Matrix M1 and M2:

\[ (M_1\,M_2)^T \]

.

template<class T1 , std::size_t Rows1, std::size_t Cols1, class T2 , std::size_t Cols2>
XprMatrix< XprMtMProduct
< MatrixConstReference< T1,
Rows1, Cols1 >, Rows1, Cols1,
MatrixConstReference< T2,
Rows1, Cols2 >, Cols2 >, Cols1,
Cols2 > 
MtM_prod (const Matrix< T1, Rows1, Cols1 > &lhs, const Matrix< T2, Rows1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the trans(matrix)-matrix-product.
template<class T1 , std::size_t Rows1, std::size_t Cols1, class T2 , std::size_t Rows2>
XprMatrix< XprMMtProduct
< MatrixConstReference< T1,
Rows1, Cols1 >, Rows1, Cols1,
MatrixConstReference< T2,
Rows2, Cols1 >, Cols1 >, Rows1,
Rows2 > 
MMt_prod (const Matrix< T1, Rows1, Cols1 > &lhs, const Matrix< T2, Rows2, Cols1 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the matrix-trans(matrix)-product.
template<class T1 , class T2 , std::size_t Rows, std::size_t Cols>
XprVector< XprMVProduct
< MatrixConstReference< T1,
Rows, Cols >, Rows, Cols,
VectorConstReference< T2, Cols >
>, Rows > 
prod (const Matrix< T1, Rows, Cols > &lhs, const Vector< T2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the matrix-vector-product.
template<class T1 , class E2 , std::size_t Rows, std::size_t Cols>
XprVector< XprMVProduct
< MatrixConstReference< T1,
Rows, Cols >, Rows, Cols,
XprVector< E2, Cols > >, Rows > 
prod (const Matrix< T1, Rows, Cols > &lhs, const XprVector< E2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the matrix-vector-product.
template<class E1 , class T2 , std::size_t Rows, std::size_t Cols>
XprVector< XprMVProduct
< XprMatrix< E1, Rows, Cols >
, Rows, Cols,
VectorConstReference< T2, Cols >
>, Rows > 
prod (const XprMatrix< E1, Rows, Cols > &lhs, const Vector< T2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1 , class T2 , std::size_t Rows, std::size_t Cols>
XprVector< XprMtVProduct
< MatrixConstReference< T1,
Rows, Cols >, Rows, Cols,
VectorConstReference< T2, Rows >
>, Cols > 
Mtx_prod (const Matrix< T1, Rows, Cols > &lhs, const Vector< T2, Rows > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the trans(matrix)-vector-productPerform on given Matrix M and vector x:

\[ M^T\, x \]

.

template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix< XprMatrixTranspose
< MatrixConstReference< T,
Rows, Cols > >, Cols, Rows > 
trans (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Transpose the matrix.
template<class T , std::size_t Sz>
NumericTraits< T >::sum_type trace (const Matrix< T, Sz, Sz > &m) TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Rows, std::size_t Cols>
XprVector< XprMatrixRow
< MatrixConstReference< T,
Rows, Cols >, Rows, Cols >
, Cols > 
row (const Matrix< T, Rows, Cols > &m, std::size_t no) TVMET_CXX_ALWAYS_INLINE
 Returns a row vector of the given matrix.
template<class T , std::size_t Rows, std::size_t Cols>
XprVector< XprMatrixCol
< MatrixConstReference< T,
Rows, Cols >, Rows, Cols >
, Rows > 
col (const Matrix< T, Rows, Cols > &m, std::size_t no) TVMET_CXX_ALWAYS_INLINE
 Returns a column vector of the given matrix.
template<class T , std::size_t Sz>
XprVector< XprMatrixDiag
< MatrixConstReference< T, Sz,
Sz >, Sz >, Sz > 
diag (const Matrix< T, Sz, Sz > &m) TVMET_CXX_ALWAYS_INLINE
 Returns the diagonal vector of the given square matrix.
template<class E , std::size_t Rows, std::size_t Cols>
Extremum< typename
E::value_type, std::size_t,
matrix_tag
maximum (const XprMatrix< E, Rows, Cols > &e)
 Find the maximum of a matrix expression.
template<class T , std::size_t Rows, std::size_t Cols>
Extremum< T, std::size_t,
matrix_tag
maximum (const Matrix< T, Rows, Cols > &m) TVMET_CXX_ALWAYS_INLINE
 Find the maximum of a matrix.
template<class E , std::size_t Rows, std::size_t Cols>
Extremum< typename
E::value_type, std::size_t,
matrix_tag
minimum (const XprMatrix< E, Rows, Cols > &e)
 Find the minimum of a matrix expression.
template<class T , std::size_t Rows, std::size_t Cols>
Extremum< T, std::size_t,
matrix_tag
minimum (const Matrix< T, Rows, Cols > &m) TVMET_CXX_ALWAYS_INLINE
 Find the minimum of a matrix.
template<class E , std::size_t Rows, std::size_t Cols>
E::value_type max (const XprMatrix< E, Rows, Cols > &e)
 Find the maximum of a matrix expression.
template<class T , std::size_t Rows, std::size_t Cols>
max (const Matrix< T, Rows, Cols > &m) TVMET_CXX_ALWAYS_INLINE
 Find the maximum of a matrix.
template<class E , std::size_t Rows, std::size_t Cols>
E::value_type min (const XprMatrix< E, Rows, Cols > &e)
 Find the minimum of a matrix expression.
template<class T , std::size_t Rows, std::size_t Cols>
min (const Matrix< T, Rows, Cols > &m) TVMET_CXX_ALWAYS_INLINE
 Find the minimum of a matrix.
template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix< XprIdentity< T,
Rows, Cols >, Rows, Cols > 
identity () TVMET_CXX_ALWAYS_INLINE
 Fill a matrix to an identity matrix.
template<class M >
XprMatrix< XprIdentity
< typename M::value_type,
M::Rows, M::Cols >, M::Rows,
M::Cols > 
identity () TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Rows, std::size_t Cols>
XprMatrix
< MatrixConstReference< T,
Rows, Cols >, Rows, Cols > 
cmatrix_ref (const T *mem) TVMET_CXX_ALWAYS_INLINE
 Creates an expression wrapper for a C like matrices.
 TVMET_IMPLEMENT_MACRO (add) TVMET_IMPLEMENT_MACRO(sub) namespace element_wise
template<class T , std::size_t Rows, std::size_t Cols>
std::ostream & operator<< (std::ostream &os, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Overload operator for i/o.
 TVMET_DECLARE_MACRO (add_eq,+=) TVMET_DECLARE_MACRO(sub_eq
std::size_t Cols2 XprMatrix
< XprMMProduct
< MatrixConstReference< T1,
Rows1, Cols1 >, Rows1, Cols1,
MatrixConstReference< T2,
Cols1, Cols2 >, Cols2 >, Rows1,
Cols2 > 
operator* (const Matrix< T1, Rows1, Cols1 > &lhs, const Matrix< T2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1 , std::size_t Rows1, std::size_t Cols1, class T2 , std::size_t Cols2>
XprMatrix< XprMMProduct
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1,
MatrixConstReference< T2,
Cols1, Cols2 >, Cols2 >, Rows1,
Cols2 > 
operator* (const XprMatrix< E1, Rows1, Cols1 > &lhs, const Matrix< T2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of XprMatrix and Matrix.
template<class T1 , std::size_t Rows1, std::size_t Cols1, class E2 , std::size_t Cols2>
XprMatrix< XprMMProduct
< MatrixConstReference< T1,
Rows1, Cols1 >, Rows1, Cols1,
XprMatrix< E2, Cols1, Cols2 >
, Cols2 >, Rows1, Cols2 > 
operator* (const Matrix< T1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of Matrix and XprMatrix.
template<class T1 , std::size_t Rows, std::size_t Cols, class T2 >
XprVector< XprMVProduct
< MatrixConstReference< T1,
Rows, Cols >, Rows, Cols,
VectorConstReference< T2, Cols >
>, Rows > 
operator* (const Matrix< T1, Rows, Cols > &lhs, const Vector< T2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 multiply a Matrix with a Vector.
template<class T1 , class E2 , std::size_t Rows, std::size_t Cols>
XprVector< XprMVProduct
< MatrixConstReference< T1,
Rows, Cols >, Rows, Cols,
XprVector< E2, Cols > >, Rows > 
operator* (const Matrix< T1, Rows, Cols > &lhs, const XprVector< E2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the matrix-vector-product.
template<class E1 , class T2 , std::size_t Rows, std::size_t Cols>
XprVector< XprMVProduct
< XprMatrix< E1, Rows, Cols >
, Rows, Cols,
VectorConstReference< T2, Cols >
>, Rows > 
operator* (const XprMatrix< E1, Rows, Cols > &lhs, const Vector< T2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the product of an XprMatrix with a Vector.
 TVMET_IMPLEMENT_MACRO (add_eq,+=) TVMET_IMPLEMENT_MACRO(sub_eq
template<class E >
std::ostream & operator<< (std::ostream &os, const TvmetBase< E > &e)
 overloaded ostream operator using static polymorphic.
template<class T , std::size_t Sz>
XprVector< XprBinOp< Fcnl_pow
< T, std::complex< T >
>, VectorConstReference< T,
Sz >, XprLiteral< std::complex
< T > > >, Sz > 
pow (const Vector< T, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
 power function on Vector and std::complex<T>.
template<class T , std::size_t Sz>
XprVector< XprBinOp< Fcnl_pow
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
pow (const Vector< std::complex< T >, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Sz>
XprVector< XprBinOp< Fcnl_pow
< std::complex< T >, T >
, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< T > >, Sz > 
pow (const Vector< std::complex< T >, Sz > &lhs, const T &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Sz>
XprVector< XprBinOp< Fcnl_pow
< std::complex< T >, int >
, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< int > >, Sz > 
pow (const Vector< std::complex< T >, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T , std::size_t Sz>
XprVector< XprBinOp
< Fcnl_polar< T, T >
, VectorConstReference< T, Sz >
, XprLiteral< T > >, Sz > 
polar (const Vector< T, Sz > &lhs, const T &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E , std::size_t Sz>
bool all_elements (const XprVector< E, Sz > &e)
 check on statements for all elementsThis is for use with boolean operators like
template<class E , std::size_t Sz>
bool any_elements (const XprVector< E, Sz > &e)
 check on statements for any elementsThis is for use with boolean operators like
template<class E1 , class T2 , class T3 , std::size_t Sz>
XprVector< XprEval< XprVector
< E1, Sz >
, VectorConstReference< T2, Sz >
, VectorConstReference< T3, Sz >
>, Sz > 
eval (const XprVector< E1, Sz > &e1, const Vector< T2, Sz > &v2, const Vector< T3, Sz > &v3)
 eval(const XprVector<E1, Sz>& e1, const Vector<T2, Sz>& v2, const Vector<T3, Sz>& v3)
template<class E1 , class T2 , class E3 , std::size_t Sz>
XprVector< XprEval< XprVector
< E1, Sz >
, VectorConstReference< T2, Sz >
, XprVector< E3, Sz > >, Sz > 
eval (const XprVector< E1, Sz > &e1, const Vector< T2, Sz > &v2, const XprVector< E3, Sz > &e3)
 eval(const XprVector<E1, Sz>& e1, const Vector<T2, Sz>& v2, const XprVector<E3, Sz>& e3)
template<class E1 , class E2 , class T3 , std::size_t Sz>
XprVector< XprEval< XprVector
< E1, Sz >, XprVector< E2, Sz >
, VectorConstReference< T3, Sz >
>, Sz > 
eval (const XprVector< E1, Sz > &e1, const XprVector< E2, Sz > &e2, const Vector< T3, Sz > &v3)
 eval(const XprVector<E1, Sz>& e1, const XprVector<E2, Sz>& e2, const Vector<T3, Sz>& v3)
template<class E1 , class E2 , class E3 , std::size_t Sz>
XprVector< XprEval< XprVector
< E1, Sz >, XprVector< E2, Sz >
, XprVector< E3, Sz > >, Sz > 
eval (const XprVector< E1, Sz > &e1, const XprVector< E2, Sz > &e2, const XprVector< E3, Sz > &e3)
 eval(const XprVector<E1, Sz>& e1, const XprVector<E2, Sz>& e2, const XprVector<E3, Sz>& e3)
template<class E , std::size_t Sz, class T >
XprVector< XprEval< XprVector
< E, Sz >, XprLiteral
< std::complex< T >
>, XprLiteral< std::complex
< T > > >, Sz > 
eval (const XprVector< E, Sz > &e, std::complex< T > z2, std::complex< T > z3)
 eval(const XprVector<E, Sz>& e, std::complex<T> z2, std::complex<T> z3)
template<class E1 , class E3 , std::size_t Sz, class T >
XprVector< XprEval< XprVector
< E1, Sz >, XprLiteral
< std::complex< T >
>, XprVector< E3, Sz > >, Sz > 
eval (const XprVector< E1, Sz > &e1, std::complex< T > z2, const XprVector< E3, Sz > &e3)
 eval(const XprVector<E1, Sz>& e1, std::complex<T> z2, const XprVector<E3, Sz>& e3)
template<class E1 , class E2 , std::size_t Sz, class T >
XprVector< XprEval< XprVector
< E1, Sz >, XprVector< E2, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
eval (const XprVector< E1, Sz > &e1, const XprVector< E2, Sz > &e2, std::complex< T > z3)
 eval(const XprVector<E1, Sz>& e1, const XprVector<E2, Sz>& e2, std::complex<T> z3)
template<class T , std::size_t Sz>
NumericTraits< T >::sum_type sum (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Compute the sum of the vector.
template<class T , std::size_t Sz>
NumericTraits< T >::sum_type product (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Compute the product of the vector elements.
template<class T1 , class T2 , std::size_t Sz>
PromoteTraits< T1, T2 >::value_type dot (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the dot/inner productCompute the dot product as:

\[ \sum_{i = 0}^{Sz - 1} ( lhs[i] * rhs[i] ) \]

where lhs is a column vector and rhs is a row vector, both vectors have the same dimension.

template<class T1 , class T2 >
Vector< typename PromoteTraits
< T1, T2 >::value_type, 3 > 
cross (const Vector< T1, 3 > &lhs, const Vector< T2, 3 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the cross/outer product.
template<class T , std::size_t Sz>
NumericTraits< T >::sum_type norm1 (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 The $l_1$ norm of a vector v.
template<class T , std::size_t Sz>
NumericTraits< T >::sum_type norm2 (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 The euklidian norm (or $l_2$ norm) of a vector v.
template<class T , std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< T, T >, VectorConstReference
< T, Sz >, XprLiteral< T >
>, Sz > 
normalize (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Normalize the given vector.
template<class E , std::size_t Sz>
Extremum< typename
E::value_type, std::size_t,
vector_tag
maximum (const XprVector< E, Sz > &e)
 Find the maximum of a vector expression.
template<class T , std::size_t Sz>
Extremum< T, std::size_t,
vector_tag
maximum (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Find the maximum of a vector.
template<class E , std::size_t Sz>
Extremum< typename
E::value_type, std::size_t,
vector_tag
minimum (const XprVector< E, Sz > &e)
 Find the minimum of a vector expression.
template<class T , std::size_t Sz>
Extremum< T, std::size_t,
vector_tag
minimum (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Find the minimum of a vector.
template<class E , std::size_t Sz>
E::value_type max (const XprVector< E, Sz > &e)
 Find the maximum of a vector expression.
template<class T , std::size_t Sz>
max (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Find the maximum of a vector.
template<class E , std::size_t Sz>
E::value_type min (const XprVector< E, Sz > &e)
 Find the minimum of a vector expression.
template<class T , std::size_t Sz>
min (const Vector< T, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Find the minimum of a vector.
template<class T , std::size_t Sz>
XprVector
< VectorConstReference< T, Sz >
, Sz > 
cvector_ref (const T *mem) TVMET_CXX_ALWAYS_INLINE
 Creates an expression wrapper for a C like vector arrays.
template<class T , std::size_t Sz>
std::ostream & operator<< (std::ostream &os, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1 , std::size_t Rows1, std::size_t Cols1, class E2 , std::size_t Cols2>
XprMatrix< XprMMProduct
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1, XprMatrix< E2,
Cols1, Cols2 >, Cols2 >, Rows1,
Cols2 > 
prod (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of two XprMatrix.
template<class E1 , std::size_t Rows1, std::size_t Cols1, class E2 , std::size_t Cols2>
XprMatrix
< XprMMProductTransposed
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1, XprMatrix< E2,
Cols1, Cols2 >, Cols2 >, Cols2,
Rows1
trans_prod (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the trans(matrix-matrix-product) Perform on given Matrix M1 and M2:

\[ (M_1\,M_2)^T \]

.

template<class E1 , std::size_t Rows1, std::size_t Cols1, class E2 , std::size_t Cols2>
XprMatrix< XprMtMProduct
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1, XprMatrix< E2,
Rows1, Cols2 >, Cols2 >, Cols1,
Cols2 > 
MtM_prod (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Rows1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the trans(matrix)-matrix-product.
template<class E1 , std::size_t Rows1, std::size_t Cols1, class E2 , std::size_t Rows2>
XprMatrix< XprMMtProduct
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1, XprMatrix< E2,
Rows2, Cols1 >, Cols1 >, Rows1,
Rows2 > 
MMt_prod (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Rows2, Cols1 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Function for the matrix-trans(matrix)-product.
template<class E1 , std::size_t Rows, std::size_t Cols, class E2 >
XprVector< XprMVProduct
< XprMatrix< E1, Rows, Cols >
, Rows, Cols, XprVector< E2,
Cols > >, Rows > 
prod (const XprMatrix< E1, Rows, Cols > &lhs, const XprVector< E2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of XprMatrix and XprVector.
template<class E , std::size_t Rows, std::size_t Cols>
XprMatrix< XprMatrixTranspose
< XprMatrix< E, Rows, Cols >
>, Cols, Rows > 
trans (const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Transpose an expression matrix.
template<class E , std::size_t Sz>
NumericTraits< typename
E::value_type >::sum_type 
trace (const XprMatrix< E, Sz, Sz > &m) TVMET_CXX_ALWAYS_INLINE
template<class E , std::size_t Rows, std::size_t Cols>
XprVector< XprMatrixRow
< XprMatrix< E, Rows, Cols >
, Rows, Cols >, Cols > 
row (const XprMatrix< E, Rows, Cols > &m, std::size_t no) TVMET_CXX_ALWAYS_INLINE
 Returns a row vector of the given matrix.
template<class E , std::size_t Rows, std::size_t Cols>
XprVector< XprMatrixCol
< XprMatrix< E, Rows, Cols >
, Rows, Cols >, Rows > 
col (const XprMatrix< E, Rows, Cols > &m, std::size_t no) TVMET_CXX_ALWAYS_INLINE
 Returns a column vector of the given matrix.
template<class E , std::size_t Sz>
XprVector< XprMatrixDiag
< XprMatrix< E, Sz, Sz >, Sz >
, Sz > 
diag (const XprMatrix< E, Sz, Sz > &m) TVMET_CXX_ALWAYS_INLINE
 Returns the diagonal vector of the given square matrix.
 TVMET_DECLARE_MACRO (add,+) TVMET_DECLARE_MACRO(sub
template<class E1 , std::size_t Rows1, std::size_t Cols1, class E2 , std::size_t Cols2>
XprMatrix< XprMMProduct
< XprMatrix< E1, Rows1, Cols1 >
, Rows1, Cols1, XprMatrix< E2,
Cols1, Cols2 >, Cols2 >, Rows1,
Cols2 > 
operator* (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of two XprMatrix.
template<class E1 , std::size_t Rows, std::size_t Cols, class E2 >
XprVector< XprMVProduct
< XprMatrix< E1, Rows, Cols >
, Rows, Cols, XprVector< E2,
Cols > >, Rows > 
operator* (const XprMatrix< E1, Rows, Cols > &lhs, const XprVector< E2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of XprMatrix and XprVector.
 TVMET_IMPLEMENT_MACRO (add,+) TVMET_IMPLEMENT_MACRO(sub
template<class T >
operator+ (const T &lhs, XprNull)
template<class T >
operator- (const T &lhs, XprNull)
template<class T >
operator* (const T &lhs, XprNull)
template<class T >
operator/ (const T &lhs, XprNull)
template<class E , std::size_t Sz>
NumericTraits< typename
E::value_type >::sum_type 
sum (const XprVector< E, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Compute the sum of the vector expression.
template<class E , std::size_t Sz>
NumericTraits< typename
E::value_type >::sum_type 
product (const XprVector< E, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Compute the product of the vector elements.
template<class E1 , class E2 , std::size_t Sz>
PromoteTraits< typename
E1::value_type, typename
E2::value_type >::value_type 
dot (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the dot/inner productCompute the dot product as:

\[ \sum_{i = 0}^{Sz - 1} ( lhs[i] * rhs[i] ) \]

where lhs is a column vector and rhs is a row vector, both vectors have the same dimension.

template<class T , class E , std::size_t Sz>
PromoteTraits< T, typename
E::value_type >::value_type 
dot (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the dot/inner productCompute the dot product as:

\[ \sum_{i = 0}^{Sz - 1} ( lhs[i] * rhs[i] ) \]

where lhs is a column vector and rhs is a row vector, both vectors have the same dimension.

template<class E , class T , std::size_t Sz>
PromoteTraits< T, typename
E::value_type >::value_type 
dot (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the dot/inner productCompute the dot product as:

\[ \sum_{i = 0}^{Sz - 1} ( lhs[i] * rhs[i] ) \]

where lhs is a column vector and rhs is a row vector, both vectors have the same dimension.

template<class E1 , class E2 >
Vector< typename PromoteTraits
< typename E1::value_type,
typename E2::value_type >
::value_type, 3 > 
cross (const XprVector< E1, 3 > &lhs, const XprVector< E2, 3 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the cross/outer product.
template<class T , class E >
Vector< typename PromoteTraits
< T, typename E::value_type >
::value_type, 3 > 
cross (const Vector< T, 3 > &lhs, const XprVector< E, 3 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the cross/outer product.
template<class E , class T >
Vector< typename PromoteTraits
< T, typename E::value_type >
::value_type, 3 > 
cross (const XprVector< E, 3 > &lhs, const Vector< T, 3 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Compute the cross/outer product.
template<class E , std::size_t Sz>
NumericTraits< typename
E::value_type >::sum_type 
norm1 (const XprVector< E, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 The $l_1$ norm of a vector expression.
template<class E , std::size_t Sz>
NumericTraits< typename
E::value_type >::sum_type 
norm2 (const XprVector< E, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 The euklidian norm (or $l_2$ norm) of a vector expression.
template<class E , std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< typename E::value_type,
typename E::value_type >
, XprVector< E, Sz >
, XprLiteral< typename
E::value_type > >, Sz > 
normalize (const XprVector< E, Sz > &v) TVMET_CXX_ALWAYS_INLINE
 Normalize the given vector expression.
template<class T1 , class E2 >
Vector< typename PromoteTraits
< T1, typename E2::value_type >
::value_type, 3 > 
cross (const Vector< T1, 3 > &lhs, const XprVector< E2, 3 > &rhs)
 TVMET_DECLARE_MACRO (mul,*) namespace element_wise
 TVMET_IMPLEMENT_MACRO (mul,*) namespace element_wise

Variables

std::size_t Rows1
std::size_t std::size_t Cols1

Detailed Description

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

forward


Function Documentation

template<class E >
AliasProxy<E> tvmet::alias ( E &  expr)

Simplify syntax for alias Matrices and Vectors, where aliasing left hand values appear in the expression.

Example:
 typedef tvmet::Matrix<double, 10, 10>  matrix_type;
 matrix_type          m;
 ...
 alias(m) += trans(m);
See also:
AliasProxy
Some Notes ... about aliasing
template<class T1 , class E2 >
Vector< typename PromoteTraits<T1, typename E2::value_type>::value_type, 3> tvmet::cross ( const Vector< T1, 3 > &  lhs,
const XprVector< E2, 3 > &  rhs 
) [inline]
template<class M >
XprMatrix< XprIdentity< typename M::value_type, M::Rows, M::Cols >, M::Rows, M::Cols > tvmet::identity ( ) [inline]
std::size_t Cols2 inline XprMatrix< XprMMProduct< MatrixConstReference< T1, Rows1, Cols1 >, Rows1, Cols1, MatrixConstReference< T2, Cols1, Cols2 >, Cols2 >, Rows1, Cols2 > tvmet::operator* ( const Matrix< T1, Rows1, Cols1 > &  lhs,
const Matrix< T2, Cols1, Cols2 > &  rhs 
)

References prod().

template<class T >
T tvmet::operator* ( const T &  lhs,
XprNull   
) [inline]
template<class T >
T tvmet::operator+ ( const T &  lhs,
XprNull   
) [inline]
template<class T >
T tvmet::operator- ( const T &  lhs,
XprNull   
) [inline]
template<class T >
T tvmet::operator/ ( const T &  lhs,
XprNull   
) [inline]
template<class T , std::size_t Sz>
std::size_t Sz std::ostream & tvmet::operator<< ( std::ostream &  os,
const Vector< T, Sz > &  rhs 
) [inline]
template<class E1 , class T2 , std::size_t Rows, std::size_t Cols>
XprVector< XprMVProduct< XprMatrix< E1, Rows, Cols >, Rows, Cols, VectorConstReference< T2, Cols > >, Rows > tvmet::prod ( const XprMatrix< E1, Rows, Cols > &  lhs,
const Vector< T2, Cols > &  rhs 
) [inline]
template<class T , std::size_t Sz>
NumericTraits< T >::sum_type tvmet::trace ( const Matrix< T, Sz, Sz > &  m) [inline]
template<class E , std::size_t Sz>
NumericTraits< typename E::value_type >::sum_type tvmet::trace ( const XprMatrix< E, Sz, Sz > &  m) [inline]
tvmet::TVMET_DECLARE_MACRO ( add  )

Referenced by TVMET_DECLARE_MACRO().

tvmet::TVMET_DECLARE_MACRO ( add  ,
 
)
tvmet::TVMET_DECLARE_MACRO ( add_eq  ,
 
)
tvmet::TVMET_DECLARE_MACRO ( mul  ,
 
)

References TVMET_DECLARE_MACRO().

tvmet::TVMET_IMPLEMENT_MACRO ( add_eq  ,
 
)
tvmet::TVMET_IMPLEMENT_MACRO ( add  ,
 
)
tvmet::TVMET_IMPLEMENT_MACRO ( add  )
tvmet::TVMET_IMPLEMENT_MACRO ( mul  ,
 
)

Variable Documentation

std::size_t std::size_t tvmet::Cols1
std::size_t tvmet::Rows1
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Defines

Author: