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

include/tvmet/xpr/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, POD)
#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_DECLARE_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, TP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME, OP)

Functions

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_div<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::element_wise::operator/ (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator+ (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator+ (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator- (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator- (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator * (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator * (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator/ (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator/ (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator+ (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator+ (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator- (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator- (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator * (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator * (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator/ (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator/ (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator+ (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator+ (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator- (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator- (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator * (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator * (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator/ (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator/ (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator+ (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_add<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator+ (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator- (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_sub<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator- (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator * (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mul<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator * (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator/ (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_div<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator/ (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_add<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator+ (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_add<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator+ (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_sub<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator- (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_sub<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator- (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_mul<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator * (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_mul<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator * (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_div<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator/ (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_div<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator/ (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mod<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::element_wise::operator% (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitxor<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::element_wise::operator^ (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitand<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::element_wise::operator & (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitor<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::element_wise::operator| (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::element_wise::operator<< (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E1, class E2, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr<
typename E1::value_type,
typename E2::value_type >,
XprVector< E1, Sz >, XprVector<
E2, Sz > >, Sz > 
tvmet::element_wise::operator>> (const XprVector< E1, Sz > &lhs, const XprVector< E2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
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_mod<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::element_wise::operator% (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_mod<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::element_wise::operator% (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitxor<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::element_wise::operator^ (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitxor<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::element_wise::operator^ (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitand<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::element_wise::operator & (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitand<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::element_wise::operator & (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitor<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::element_wise::operator| (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_bitor<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::element_wise::operator| (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::element_wise::operator<< (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shl<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::element_wise::operator<< (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::element_wise::operator>> (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_shr<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::element_wise::operator>> (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator> (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator> (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator< (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator< (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator>= (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator>= (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator<= (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator<= (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator== (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator== (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
typename E::value_type, int >,
XprVector< E, Sz >, XprLiteral<
int > >, Sz > 
tvmet::operator!= (const XprVector< E, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
int, typename E::value_type >,
XprLiteral< int >, XprVector<
E, Sz > >, Sz > 
tvmet::operator!= (int lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
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 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 Sz>
XprVector< XprBinOp< Fcnl_greater<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator> (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator> (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator< (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator< (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator>= (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator>= (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator<= (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator<= (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator== (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator== (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
typename E::value_type, float >,
XprVector< E, Sz >, XprLiteral<
float > >, Sz > 
tvmet::operator!= (const XprVector< E, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
float, typename E::value_type >,
XprLiteral< float >, XprVector<
E, Sz > >, Sz > 
tvmet::operator!= (float lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator> (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator> (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator< (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator< (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator>= (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator>= (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator<= (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator<= (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator== (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator== (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
typename E::value_type, double >,
XprVector< E, Sz >, XprLiteral<
double > >, Sz > 
tvmet::operator!= (const XprVector< E, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
double, typename E::value_type >,
XprLiteral< double >, XprVector<
E, Sz > >, Sz > 
tvmet::operator!= (double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator> (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator> (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator< (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator< (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator>= (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_greater_eq<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator>= (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator<= (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_less_eq<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator<= (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator== (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_eq<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator== (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
typename E::value_type, long
double >, XprVector< E, Sz >,
XprLiteral< long double > >,
Sz > 
tvmet::operator!= (const XprVector< E, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprBinOp< Fcnl_not_eq<
long double, typename E::value_type >,
XprLiteral< long double >,
XprVector< E, Sz > >, Sz > 
tvmet::operator!= (long double lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_greater<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator> (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_greater<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator> (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_less<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator< (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_less<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator< (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_greater_eq<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator>= (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_greater_eq<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator>= (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_less_eq<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator<= (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_less_eq<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator<= (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_eq<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator== (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_eq<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator== (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_not_eq<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator!= (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_not_eq<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator!= (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_and<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator && (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_and<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator && (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_or<
typename E::value_type, std::complex<
T > >, XprVector< E, Sz >,
XprLiteral< std::complex<
T > > >, Sz > 
tvmet::operator|| (const XprVector< E, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz, class T>
XprVector< XprBinOp< Fcnl_or<
std::complex< T >, typename
E::value_type >, XprLiteral<
std::complex< T > >, XprVector<
E, Sz > >, Sz > 
tvmet::operator|| (const std::complex< T > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class E, std::size_t Sz>
XprVector< XprUnOp< Fcnl_not<
typename E::value_type >,
XprVector< E, Sz > >, Sz > 
tvmet::operator! (const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Logical Not operator for XprVector.
template<class E, std::size_t Sz>
XprVector< XprUnOp< Fcnl_compl<
typename E::value_type >,
XprVector< E, Sz > >, Sz > 
tvmet::operator~ (const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Bitwise Not operator for XprVector.
template<class E, std::size_t Sz>
XprVector< XprUnOp< Fcnl_neg<
typename E::value_type >,
XprVector< E, Sz > >, Sz > 
tvmet::operator- (const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE
 Negate operator for XprVector.


Define Documentation

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template <class E, std::size_t Sz>          \
inline                  \
XprVector<                \
  XprUnOp<                \
    Fcnl_##NAME<typename E::value_type>,        \
    XprVector<E, Sz>              \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E, std::size_t Sz, class T>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E::value_type, std::complex<T> >,    \
    XprVector<E, Sz>,             \
    XprLiteral< std::complex<T> >         \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E, Sz>& lhs,       \
       const std::complex<T>& rhs) TVMET_CXX_ALWAYS_INLINE; \
                  \
template<class E, std::size_t Sz, class T>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<std::complex<T>, typename E::value_type>,   \
    XprLiteral< std::complex<T> >,          \
    XprVector<E, Sz>              \
  >,                  \
  Sz                  \
>                 \
operator OP (const std::complex<T>& lhs,        \
       const XprVector<E, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP,
TP   ) 

Value:

template<class E, std::size_t Sz>         \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E::value_type, TP >,       \
    XprVector<E, Sz>,             \
    XprLiteral< TP >              \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E, Sz>& lhs,         \
       TP rhs) TVMET_CXX_ALWAYS_INLINE;       \
                  \
template<class E, std::size_t Sz>         \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<TP, typename E::value_type>,        \
    XprLiteral< TP >,             \
    XprVector<E, Sz>              \
  >,                  \
  Sz                  \
>                 \
operator OP (TP lhs,              \
       const XprVector<E, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E1, class E2, std::size_t Sz>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprVector<E1, Sz>,              \
    XprVector<E2, Sz>             \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E1, Sz>& lhs,        \
       const XprVector<E2, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E, std::size_t Sz, class T>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E::value_type, std::complex<T> >,    \
    XprVector<E, Sz>,             \
    XprLiteral< std::complex<T> >         \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E, Sz>& lhs,       \
       const std::complex<T>& rhs) TVMET_CXX_ALWAYS_INLINE; \
                  \
template<class E, std::size_t Sz, class T>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME< std::complex<T>, typename E::value_type >,   \
    XprLiteral< std::complex<T> >,          \
    XprVector< E, Sz>             \
  >,                  \
  Sz                  \
>                 \
operator OP (const std::complex<T>& lhs,        \
       const XprVector<E, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP,
POD   ) 

Value:

template<class E, std::size_t Sz>         \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E::value_type, POD >,        \
    XprVector<E, Sz>,             \
    XprLiteral< POD >             \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E, Sz>& lhs,         \
       POD rhs) TVMET_CXX_ALWAYS_INLINE;        \
                  \
template<class E, std::size_t Sz>         \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME< POD, typename E::value_type >,       \
    XprLiteral< POD >,              \
    XprVector< E, Sz>             \
  >,                  \
  Sz                  \
>                 \
operator OP (POD lhs,               \
       const XprVector<E, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME,
OP   ) 

Value:

template<class E1, class E2, std::size_t Sz>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprVector<E1, Sz>,              \
    XprVector<E2, Sz>             \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E1, Sz>& lhs,        \
       const XprVector<E2, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template <class E, std::size_t Sz>          \
inline                  \
XprVector<                \
  XprUnOp<                \
    Fcnl_##NAME<typename E::value_type>,        \
    XprVector<E, Sz>              \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E, Sz>& rhs) {       \
  typedef XprUnOp<              \
    Fcnl_##NAME<typename E::value_type>,        \
    XprVector<E, Sz>              \
  >                expr_type; \
  return XprVector<expr_type, Sz>(expr_type(rhs));      \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP,
TP   ) 

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class E1, class E2, std::size_t Sz>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprVector<E1, Sz>,              \
    XprVector<E2, Sz>             \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E1, Sz>& lhs,        \
       const XprVector<E2, Sz>& rhs) {        \
  typedef XprBinOp<             \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprVector<E1, Sz>,              \
    XprVector<E2, Sz>             \
  >                 expr_type;  \
  return XprVector<expr_type, Sz>(expr_type(lhs, rhs));     \
}

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

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

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP,
POD   ) 

Value:

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

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template<class E1, class E2, std::size_t Sz>        \
inline                  \
XprVector<                \
  XprBinOp<               \
    Fcnl_##NAME<typename E1::value_type, typename E2::value_type>,  \
    XprVector<E1, Sz>,              \
    XprVector<E2, Sz>             \
  >,                  \
  Sz                  \
>                 \
operator OP (const XprVector<E1, Sz>& lhs,        \
       const XprVector<E2, Sz>& rhs) {        \
  return NAME (lhs, rhs);           \
}


Author: