Go to the source code of this file.
Define Documentation
#define TVMET_DECLARE_MACRO |
( |
|
NAME | ) |
|
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 \
> \
NAME(const XprVector<E1, Sz>& lhs, \
const XprVector<E2, Sz>& rhs) TVMET_CXX_ALWAYS_INLINE;
#define TVMET_DECLARE_MACRO |
( |
|
NAME, |
|
|
|
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 \
> \
NAME(const XprVector<E, Sz>& lhs, \
TP rhs) TVMET_CXX_ALWAYS_INLINE;
#define TVMET_DECLARE_MACRO |
( |
|
NAME | ) |
|
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 \
> \
NAME(const XprVector<E, Sz>& lhs, \
const std::complex<T>& rhs) TVMET_CXX_ALWAYS_INLINE;
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME | ) |
|
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 \
> \
NAME(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, |
|
|
|
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 \
> \
NAME(const XprVector<E, Sz>& lhs, TP rhs) { \
typedef XprBinOp< \
Fcnl_##NAME<typename E::value_type, TP >, \
XprVector<E, Sz>, \
XprLiteral< TP > \
> expr_type; \
return XprVector<expr_type, Sz>( \
expr_type(lhs, XprLiteral< TP >(rhs))); \
}
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME | ) |
|
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 \
> \
NAME(const XprVector<E, Sz>& lhs, const std::complex<T>& rhs) { \
typedef XprBinOp< \
Fcnl_##NAME<typename E::value_type, std::complex<T> >, \
XprVector<E, Sz>, \
XprLiteral< std::complex<T> > \
> expr_type; \
return XprVector<expr_type, Sz>( \
expr_type(lhs, XprLiteral< std::complex<T> >(rhs))); \
}