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

Global Binary Operators
[Global Operators]

Collaboration diagram for Global Binary Operators:


Functions

template<class T, std::size_t Rows, std::size_t Cols>
std::ostream & tvmet::operator<< (std::ostream &os, const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Overload operator for i/o.
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 > 
tvmet::operator * (const Matrix< T1, Rows1, Cols1 > &lhs, const Matrix< T2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 multiply two Matrices.
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 > 
tvmet::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 > 
tvmet::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 > 
tvmet::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 > 
tvmet::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 > 
tvmet::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.
template<class E>
std::ostream & tvmet::operator<< (std::ostream &os, const TvmetBase< E > &e)
 overloaded ostream operator using static polymorphic.
template<class T, std::size_t Sz>
std::ostream & tvmet::operator<< (std::ostream &os, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Overload operator for i/o.
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 > 
tvmet::operator * (const XprMatrix< E1, Rows1, Cols1 > &lhs, const XprMatrix< E2, Cols1, Cols2 > &rhs) TVMET_CXX_ALWAYS_INLINE
 Multliply operator for 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 > 
tvmet::operator * (const XprMatrix< E1, Rows, Cols > &lhs, const XprVector< E2, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Evaluate the product of XprMatrix and XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator+ (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Addition operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator- (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Subtraction operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator * (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Multliply operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator> (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bigger operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator< (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Lesser operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator>= (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bigger Equal operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator<= (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Less Equal operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator== (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Equal operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator!= (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Not Equal operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator && (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical AND operator for two XprVector.
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::operator|| (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical OR operator for two XprVector.
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator && (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Logical AND operator between XprVector and int.
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator && (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical AND operator between int and XprVector.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and<
typename E::value_type, int >,
XprMatrix< E, Rows, Cols >,
XprLiteral< int > >, Rows,
Cols > 
tvmet::operator && (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Logical AND operator between XprMatrix and int.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_and<
int, typename E::value_type >,
XprLiteral< int >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator && (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical AND operator between int and XprMatrix.
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator|| (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Logical OR operator between XprVector and int.
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator|| (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical OR operator between int and XprVector.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or<
typename E::value_type, int >,
XprMatrix< E, Rows, Cols >,
XprLiteral< int > >, Rows,
Cols > 
tvmet::operator|| (const XprMatrix< E, Rows, Cols > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
 Logical OR operator between XprMatrix and int.
template<class E, std::size_t Rows, std::size_t Cols>
XprMatrix< XprBinOp< Fcnl_or<
int, typename E::value_type >,
XprLiteral< int >, XprMatrix<
E, Rows, Cols > >, Rows,
Cols > 
tvmet::operator|| (int lhs, const XprMatrix< E, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical OR operator between int and XprMatrix.


Function Documentation

template<class E, std::size_t Rows, std::size_t Cols>
tvmet::operator && ( int  lhs,
const XprMatrix< E, Rows, Cols > &  rhs 
) [inline]

Logical AND operator between int and XprMatrix.

template<class E, std::size_t Rows, std::size_t Cols>
tvmet::operator && ( const XprMatrix< E, Rows, Cols > &  lhs,
int  rhs 
) [inline]

Logical AND operator between XprMatrix and int.

template<class E, std::size_t Sz>
tvmet::operator && ( int  lhs,
const XprVector< E, Sz > &  rhs 
) [inline]

Logical AND operator between int and XprVector.

template<class E, std::size_t Sz>
tvmet::operator && ( const XprVector< E, Sz > &  lhs,
int  rhs 
) [inline]

Logical AND operator between XprVector and int.

template<class E1, class E2, std::size_t Sz>
tvmet::operator && ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Logical AND operator for two XprVector.

template<class E1, class E2, std::size_t Sz>
tvmet::operator * ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Multliply operator for two XprVector.

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 > tvmet::operator * ( const XprMatrix< E1, Rows, Cols > &  lhs,
const XprVector< E2, Cols > &  rhs 
) [inline]

Evaluate the product of XprMatrix and XprVector.

See also:
prod(XprMatrix<E1, Rows, Cols> lhs, XprVector<E2, Cols> rhs)

template<class E1, std::size_t Rows1, std::size_t Cols1, class E2, std::size_t Cols2>
tvmet::operator * ( const XprMatrix< E1, Rows1, Cols1 > &  lhs,
const XprMatrix< E2, Cols1, Cols2 > &  rhs 
) [inline]

Multliply operator for two XprMatrix.

See also:
prod(XprMatrix<E1, Rows1, Cols1> lhs, XprMatrix<E2, Cols1, Cols2> rhs)

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::operator * ( const XprMatrix< E1, Rows, Cols > &  lhs,
const Vector< T2, Cols > &  rhs 
) [inline]

Compute the product of an XprMatrix with a Vector.

See also:
prod(const XprMatrix<E, Rows, Cols>& lhs, const Vector<T, Cols>& rhs)

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 > tvmet::operator * ( const Matrix< T1, Rows, Cols > &  lhs,
const XprVector< E2, Cols > &  rhs 
) [inline]

Function for the matrix-vector-product.

See also:
prod(const Matrix<T, Rows, Cols>& lhs, const XprVector<E, Cols>& rhs)

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 > tvmet::operator * ( const Matrix< T1, Rows, Cols > &  lhs,
const Vector< T2, Cols > &  rhs 
) [inline]

multiply a Matrix with a Vector.

Note:
The length of the Vector has to be equal to the number of Columns.
See also:
prod(const Matrix<T1, Rows, Cols>& m, const Vector<T2, Cols>& v)

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 > tvmet::operator * ( const Matrix< T1, Rows1, Cols1 > &  lhs,
const XprMatrix< E2, Cols1, Cols2 > &  rhs 
) [inline]

Evaluate the product of Matrix and XprMatrix.

See also:
prod(const Matrix<T, Rows1, Cols1>& lhs, const XprMatrix<E, Cols1, Cols2>& rhs)

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 > tvmet::operator * ( const XprMatrix< E1, Rows1, Cols1 > &  lhs,
const Matrix< T2, Cols1, Cols2 > &  rhs 
) [inline]

Evaluate the product of XprMatrix and Matrix.

See also:
prod(const XprMatrix<E1, Rows1, Cols1>& lhs, const Matrix<T2, Cols1, Cols2>& rhs)

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 > tvmet::operator * ( const Matrix< T1, Rows1, Cols1 > &  lhs,
const Matrix< T2, Cols1, Cols2 > &  rhs 
) [inline]

multiply two Matrices.

Note:
The rows2 has to be equal to cols1.
See also:
prod(const Matrix<T1, Rows1, Cols1>& lhs, const Matrix<T2, Cols1, Cols2>& rhs)

template<class E1, class E2, std::size_t Sz>
tvmet::operator!= ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Not Equal operator for two XprVector.

template<class E1, class E2, std::size_t Sz>
tvmet::operator+ ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Addition operator for two XprVector.

template<class E1, class E2, std::size_t Sz>
tvmet::operator- ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Subtraction operator for two XprVector.

template<class E1, class E2, std::size_t Sz>
tvmet::operator< ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Lesser operator for two XprVector.

template<class T, std::size_t Sz>
std::ostream & tvmet::operator<< ( std::ostream &  os,
const Vector< T, Sz > &  rhs 
) [inline]

Overload operator for i/o.

template<class E>
tvmet::operator<< ( std::ostream &  os,
const TvmetBase< E > &  e 
) [inline]

overloaded ostream operator using static polymorphic.

template<class T, std::size_t Rows, std::size_t Cols>
std::ostream & tvmet::operator<< ( std::ostream &  os,
const Matrix< T, Rows, Cols > &  rhs 
) [inline]

Overload operator for i/o.

template<class E1, class E2, std::size_t Sz>
tvmet::operator<= ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Less Equal operator for two XprVector.

template<class E1, class E2, std::size_t Sz>
tvmet::operator== ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Equal operator for two XprVector.

template<class E1, class E2, std::size_t Sz>
tvmet::operator> ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Bigger operator for two XprVector.

template<class E1, class E2, std::size_t Sz>
tvmet::operator>= ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Bigger Equal operator for two XprVector.

template<class E, std::size_t Rows, std::size_t Cols>
tvmet::operator|| ( int  lhs,
const XprMatrix< E, Rows, Cols > &  rhs 
) [inline]

Logical OR operator between int and XprMatrix.

template<class E, std::size_t Rows, std::size_t Cols>
tvmet::operator|| ( const XprMatrix< E, Rows, Cols > &  lhs,
int  rhs 
) [inline]

Logical OR operator between XprMatrix and int.

template<class E, std::size_t Sz>
tvmet::operator|| ( int  lhs,
const XprVector< E, Sz > &  rhs 
) [inline]

Logical OR operator between int and XprVector.

template<class E, std::size_t Sz>
tvmet::operator|| ( const XprVector< E, Sz > &  lhs,
int  rhs 
) [inline]

Logical OR operator between XprVector and int.

template<class E1, class E2, std::size_t Sz>
tvmet::operator|| ( const XprVector< E1, Sz > &  lhs,
const XprVector< E2, Sz > &  rhs 
) [inline]

Logical OR operator for two XprVector.


Author: