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

include/tvmet/VectorOperators.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tvmet
namespace  tvmet::element_wise

Defines

#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP, POD)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_DECLARE_MACRO(NAME, OP, TP)
#define TVMET_DECLARE_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP, POD)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP, TP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)

Functions

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 T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::operator+= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::operator+= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::operator-= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::operator-= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::operator*= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::operator*= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::element_wise::operator/= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::element_wise::operator/= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::element_wise::operator%= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::element_wise::operator%= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::element_wise::operator^= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::element_wise::operator^= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::element_wise::operator &= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::element_wise::operator &= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::element_wise::operator|= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::element_wise::operator|= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::element_wise::operator<<= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::element_wise::operator<<= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
Vector< T1, Sz > & tvmet::element_wise::operator>>= (Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, class E, std::size_t Sz>
Vector< T, Sz > & tvmet::element_wise::operator>>= (Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator+ (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator+ (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator+ (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator- (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator- (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator- (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator* (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator* (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator* (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::element_wise::operator/ (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator/ (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::element_wise::operator/ (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator+ (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator+ (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator- (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator- (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator* (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator* (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator/ (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator/ (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator+ (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator+ (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator- (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator- (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator* (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator* (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator/ (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator/ (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator+ (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator+ (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator- (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator- (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator* (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator* (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator/ (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator/ (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator+ (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator+ (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator- (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator- (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator* (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator* (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator/ (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator/ (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator+ (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_add
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator+ (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator- (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_sub
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator- (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator* (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_mul
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator* (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator/ (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_div
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator/ (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mod
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::element_wise::operator% (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mod
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator% (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mod
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::element_wise::operator% (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitxor< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::element_wise::operator^ (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitxor< typename
E::value_type, T >, XprVector
< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator^ (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitxor< T, typename
E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::element_wise::operator^ (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitand< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::element_wise::operator & (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitand< typename
E::value_type, T >, XprVector
< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator & (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitand< T, typename
E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::element_wise::operator & (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitor< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::element_wise::operator| (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitor< typename
E::value_type, T >, XprVector
< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator| (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitor< T, typename
E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::element_wise::operator| (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::element_wise::operator<< (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator<< (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::element_wise::operator<< (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::element_wise::operator>> (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator>> (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::element_wise::operator>> (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator> (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< typename
E::value_type, T >, XprVector
< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator> (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< T, typename
E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator> (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator< (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator< (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator< (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator>= (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< typename
E::value_type, T >, XprVector
< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator>= (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< T, typename
E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator>= (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator<= (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< typename
E::value_type, T >, XprVector
< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator<= (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< T, typename
E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator<= (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator== (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator== (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator== (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator!= (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< typename
E::value_type, T >, XprVector
< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator!= (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< T, typename
E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator!= (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator && (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator && (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator && (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T1, class T2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< T1, T2 >
, VectorConstReference< T1, Sz >
, VectorConstReference< T2, Sz >
>, Sz > 
tvmet::operator|| (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< typename E::value_type, T >
, XprVector< E, Sz >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator|| (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< T, typename E::value_type >
, VectorConstReference< T, Sz >
, XprVector< E, Sz > >, Sz > 
tvmet::operator|| (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< std::complex
< T >, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator> (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_greater< std::complex
< T >, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator> (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator< (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_less
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator< (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator>= (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_greater_eq
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator>= (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< std::complex
< T >, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator<= (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_less_eq< std::complex
< T >, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator<= (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator== (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_eq
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator== (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator!= (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_not_eq< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator!= (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator && (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_and
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator && (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< std::complex< T >
, std::complex< T >
>, VectorConstReference
< std::complex< T >, Sz >
, XprLiteral< std::complex< T >
> >, Sz > 
tvmet::operator|| (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_or
< std::complex< T >
, std::complex< T >
>, XprLiteral< std::complex
< T > >, VectorConstReference
< std::complex< T >, Sz >
>, Sz > 
tvmet::operator|| (const std::complex< T > &lhs, const Vector< std::complex< T >, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mod
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::element_wise::operator% (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mod
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator% (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitxor< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::element_wise::operator^ (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitxor< int, T >
, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator^ (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitand< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::element_wise::operator & (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitand< int, T >
, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator & (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitor< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::element_wise::operator| (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_bitor< int, T >
, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator| (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::element_wise::operator<< (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator<< (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::element_wise::operator>> (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::element_wise::operator>> (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator> (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< int, T >
, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator> (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator< (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator< (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator>= (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< int, T >
, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator>= (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator<= (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< int, T >
, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator<= (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator== (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator== (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator!= (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< int, T >
, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator!= (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator && (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator && (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< T, int >
, VectorConstReference< T, Sz >
, XprLiteral< int > >, Sz > 
tvmet::operator|| (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< int, T >, XprLiteral< int >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator|| (int lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator> (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< float, T >
, XprLiteral< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator> (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator< (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator< (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator>= (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< float, T >
, XprLiteral< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator>= (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator<= (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< float, T >
, XprLiteral< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator<= (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator== (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator== (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator!= (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< float, T >
, XprLiteral< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator!= (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator && (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator && (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< T, float >
, VectorConstReference< T, Sz >
, XprLiteral< float > >, Sz > 
tvmet::operator|| (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< float, T >, XprLiteral
< float >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator|| (float lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator> (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< double, T >
, XprLiteral< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator> (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator< (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator< (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator>= (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< double, T >
, XprLiteral< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator>= (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator<= (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< double, T >
, XprLiteral< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator<= (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator== (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator== (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator!= (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< double, T >
, XprLiteral< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator!= (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator && (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator && (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< T, double >
, VectorConstReference< T, Sz >
, XprLiteral< double > >, Sz > 
tvmet::operator|| (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< double, T >, XprLiteral
< double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator|| (double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator> (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater< long double, T >
, XprLiteral< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator> (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator< (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator< (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< T, long
double >, VectorConstReference
< T, Sz >, XprLiteral< long
double > >, Sz > 
tvmet::operator>= (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_greater_eq< long double,
T >, XprLiteral< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator>= (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator<= (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_less_eq< long double, T >
, XprLiteral< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator<= (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator== (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator== (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator!= (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp
< Fcnl_not_eq< long double, T >
, XprLiteral< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator!= (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator && (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_and
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator && (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< T, long double >
, VectorConstReference< T, Sz >
, XprLiteral< long double >
>, Sz > 
tvmet::operator|| (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprBinOp< Fcnl_or
< long double, T >, XprLiteral
< long double >
, VectorConstReference< T, Sz >
>, Sz > 
tvmet::operator|| (long double lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprUnOp< Fcnl_not
< T >, VectorConstReference< T,
Sz > >, Sz > 
tvmet::operator! (const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprUnOp< Fcnl_compl
< T >, VectorConstReference< T,
Sz > >, Sz > 
tvmet::operator~ (const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Sz>
XprVector< XprUnOp< Fcnl_neg
< T >, VectorConstReference< T,
Sz > >, Sz > 
tvmet::operator- (const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE


Define Documentation

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template <class T, std::size_t Sz>        \
XprVector<              \
  XprUnOp<              \
    Fcnl_##NAME<T>,           \
    VectorConstReference<T, Sz>         \
  >,                \
  Sz                \
>               \
operator OP (const Vector<T, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP,
TP   ) 

Value:

template<class T, std::size_t Sz>         \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME< T, TP >,           \
    VectorConstReference<T, Sz>,          \
    XprLiteral< TP >              \
  >,                  \
  Sz                  \
>                 \
operator OP (const Vector<T, Sz>& lhs, TP rhs) TVMET_CXX_ALWAYS_INLINE; \
                  \
template<class T, std::size_t Sz>         \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME< TP, T>,            \
    XprLiteral< TP >,             \
    VectorConstReference<T, Sz>           \
  >,                  \
  Sz                  \
>                 \
operator OP (TP lhs, const Vector<T, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class T, std::size_t Sz>           \
XprVector<                  \
  XprBinOp<                 \
    Fcnl_##NAME< std::complex<T>, std::complex<T> >,        \
    VectorConstReference< std::complex<T>, Sz>,         \
    XprLiteral< std::complex<T> >           \
  >,                    \
  Sz                    \
>                   \
operator OP (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_##NAME< std::complex<T>, std::complex<T> >,        \
    XprLiteral< std::complex<T> >,            \
    VectorConstReference< std::complex<T>, Sz>          \
  >,                    \
  Sz                    \
>                   \
operator OP (const std::complex<T>& lhs,          \
       const Vector< std::complex<T>, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class T, std::size_t Sz>           \
XprVector<                  \
  XprBinOp<                 \
    Fcnl_##NAME< std::complex<T>, std::complex<T> >,        \
    VectorConstReference< std::complex<T>, Sz>,         \
    XprLiteral< std::complex<T> >           \
  >,                    \
  Sz                    \
>                   \
operator OP (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_##NAME< std::complex<T>, std::complex<T> >,        \
    XprLiteral< std::complex<T> >,            \
    VectorConstReference< std::complex<T>, Sz>          \
  >,                    \
  Sz                    \
>                   \
operator OP (const std::complex<T>& lhs,          \
       const Vector< std::complex<T>, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP,
POD   ) 

Value:

template<class T, std::size_t Sz>       \
XprVector<              \
  XprBinOp<             \
    Fcnl_##NAME< T, POD >,          \
    VectorConstReference<T, Sz>,        \
    XprLiteral< POD >           \
  >,                \
  Sz                \
>               \
operator OP (const Vector<T, Sz>& lhs,        \
       POD rhs) TVMET_CXX_ALWAYS_INLINE;      \
                \
template<class T, std::size_t Sz>       \
XprVector<              \
  XprBinOp<             \
    Fcnl_##NAME< POD, T>,         \
    XprLiteral< POD >,            \
    VectorConstReference<T, Sz>         \
  >,                \
  Sz                \
>               \
operator OP (POD lhs,             \
       const Vector<T, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class T1, class T2, std::size_t Sz>        \
Vector<T1, Sz>&               \
operator OP (Vector<T1, Sz>& lhs,         \
       const Vector<T2, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;  \
                  \
template<class T, class E, std::size_t Sz>        \
Vector<T, Sz>&                \
operator OP (Vector<T, Sz>& lhs,          \
       const XprVector<E, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template <class T, std::size_t Sz>          \
inline                  \
XprVector<                \
  XprUnOp<                \
    Fcnl_##NAME<T>,             \
    VectorConstReference<T, Sz>           \
  >,                  \
  Sz                  \
>                 \
operator OP (const Vector<T, Sz>& rhs) {        \
  typedef XprUnOp<              \
    Fcnl_##NAME<T>,             \
    VectorConstReference<T, Sz>           \
  >                expr_type; \
  return XprVector<expr_type, Sz>(expr_type(rhs.const_ref()));    \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP,
TP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class T, std::size_t Sz>     \
inline              \
XprVector<            \
  XprBinOp<           \
    Fcnl_##NAME< std::complex<T>, std::complex<T> >,  \
    VectorConstReference< std::complex<T>, Sz>,   \
    XprLiteral< std::complex<T> >     \
  >,              \
  Sz              \
>             \
operator OP (const Vector<std::complex<T>, Sz>& lhs,  \
       const std::complex<T>& rhs) {    \
  return NAME (lhs, rhs);       \
}             \
              \
template<class T, std::size_t Sz>     \
inline              \
XprVector<            \
  XprBinOp<           \
    Fcnl_##NAME< std::complex<T>, std::complex<T> >,  \
    XprLiteral< std::complex<T> >,      \
    VectorConstReference< std::complex<T>, Sz>    \
  >,              \
  Sz              \
>             \
operator OP (const std::complex<T>& lhs,    \
       const Vector< std::complex<T>, Sz>& rhs) { \
  return NAME (lhs, rhs);       \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP,
POD   ) 

Value:

template<class T, std::size_t Sz>     \
inline              \
XprVector<            \
  XprBinOp<           \
    Fcnl_##NAME< T, POD >,        \
    VectorConstReference<T, Sz>,      \
    XprLiteral< POD >         \
  >,              \
  Sz              \
>             \
operator OP (const Vector<T, Sz>& lhs, POD rhs) { \
  return NAME (lhs, rhs);       \
}             \
              \
template<class T, std::size_t Sz>     \
inline              \
XprVector<            \
  XprBinOp<           \
    Fcnl_##NAME< POD, T>,       \
    XprLiteral< POD >,          \
    VectorConstReference<T, Sz>       \
  >,              \
  Sz              \
>             \
operator OP (POD lhs, const Vector<T, Sz>& rhs) { \
  return NAME (lhs, rhs);       \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class T1, class T2, std::size_t Sz>      \
inline Vector<T1, Sz>&            \
operator OP (Vector<T1, Sz>& lhs, const Vector<T2, Sz>& rhs) {  \
  return lhs.M_##NAME(rhs);         \
}               \
                \
template<class T, class E, std::size_t Sz>      \
inline Vector<T, Sz>&           \
operator OP (Vector<T, Sz>& lhs, const XprVector<E, Sz>& rhs) { \
  return lhs.M_##NAME(rhs);         \
}


Author: