Tiny Vector Matrix library using Expression Templates | Sourceforge Project Page |
#include <tvmet/NumericTraits.h>
#include <tvmet/Extremum.h>
Include dependency graph for VectorBinaryFunctions.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Namespaces | |
namespace | tvmet |
Defines | |
#define | TVMET_DECLARE_MACRO(NAME) |
#define | TVMET_DECLARE_MACRO(NAME, TP) |
#define | TVMET_IMPLEMENT_MACRO(NAME) |
#define | TVMET_IMPLEMENT_MACRO(NAME, TP) |
Functions | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_atan2< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::atan2 (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
arcus tangent of two variables function for two Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_atan2< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::atan2 (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
arcus tangent of two variables function on XprVector and Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_atan2< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::atan2 (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
arcus tangent of two variables function on Vector and XprVector. | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_drem< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::drem (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function for two Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_drem< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::drem (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on XprVector and Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_drem< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::drem (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and XprVector. | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_fmod< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::fmod (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function for two Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_fmod< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::fmod (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on XprVector and Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_fmod< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::fmod (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and XprVector. | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_hypot< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::hypot (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Euclidean distance function for two Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_hypot< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::hypot (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Euclidean distance function on XprVector and Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_hypot< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::hypot (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Euclidean distance function on Vector and XprVector. | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_jn< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::jn (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function for two Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_jn< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::jn (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on XprVector and Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_jn< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::jn (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and XprVector. | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_yn< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::yn (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function for two Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_yn< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::yn (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on XprVector and Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_yn< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::yn (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and XprVector. | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::pow (const Vector< T1, Sz > &lhs, const Vector< T2, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
power function for two Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::pow (const XprVector< E, Sz > &lhs, const Vector< T, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
power function on XprVector and Vector. | |
template<class E, class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::pow (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
power function on Vector and XprVector. | |
template<class T1, class T2, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_polar< T1, T2 >, VectorConstReference< T1, Sz >, VectorConstReference< T2, Sz > >, Sz > | tvmet::polar (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_polar< typename E::value_type, T >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::polar (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_polar< T, typename E::value_type >, VectorConstReference< T, Sz >, XprVector< E, Sz > >, Sz > | tvmet::polar (const Vector< T, Sz > &lhs, const XprVector< E, Sz > &rhs) TVMET_CXX_ALWAYS_INLINE |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_atan2< T, int >, VectorConstReference< T, Sz >, XprLiteral< int > >, Sz > | tvmet::atan2 (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
arcus tangent of two variables function on Vector and int. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_drem< T, int >, VectorConstReference< T, Sz >, XprLiteral< int > >, Sz > | tvmet::drem (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and int. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_fmod< T, int >, VectorConstReference< T, Sz >, XprLiteral< int > >, Sz > | tvmet::fmod (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and int. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_hypot< T, int >, VectorConstReference< T, Sz >, XprLiteral< int > >, Sz > | tvmet::hypot (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
Euclidean distance function on Vector and int. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_jn< T, int >, VectorConstReference< T, Sz >, XprLiteral< int > >, Sz > | tvmet::jn (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and int. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_yn< T, int >, VectorConstReference< T, Sz >, XprLiteral< int > >, Sz > | tvmet::yn (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and int. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow< T, int >, VectorConstReference< T, Sz >, XprLiteral< int > >, Sz > | tvmet::pow (const Vector< T, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
power function on Vector and int. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_atan2< T, float >, VectorConstReference< T, Sz >, XprLiteral< float > >, Sz > | tvmet::atan2 (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE |
arcus tangent of two variables function on Vector and float. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_drem< T, float >, VectorConstReference< T, Sz >, XprLiteral< float > >, Sz > | tvmet::drem (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and float. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_fmod< T, float >, VectorConstReference< T, Sz >, XprLiteral< float > >, Sz > | tvmet::fmod (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and float. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_hypot< T, float >, VectorConstReference< T, Sz >, XprLiteral< float > >, Sz > | tvmet::hypot (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE |
Euclidean distance function on Vector and float. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_jn< T, float >, VectorConstReference< T, Sz >, XprLiteral< float > >, Sz > | tvmet::jn (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and float. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_yn< T, float >, VectorConstReference< T, Sz >, XprLiteral< float > >, Sz > | tvmet::yn (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and float. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow< T, float >, VectorConstReference< T, Sz >, XprLiteral< float > >, Sz > | tvmet::pow (const Vector< T, Sz > &lhs, float rhs) TVMET_CXX_ALWAYS_INLINE |
power function on Vector and float. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_atan2< T, double >, VectorConstReference< T, Sz >, XprLiteral< double > >, Sz > | tvmet::atan2 (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE |
arcus tangent of two variables function on Vector and double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_drem< T, double >, VectorConstReference< T, Sz >, XprLiteral< double > >, Sz > | tvmet::drem (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_fmod< T, double >, VectorConstReference< T, Sz >, XprLiteral< double > >, Sz > | tvmet::fmod (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_hypot< T, double >, VectorConstReference< T, Sz >, XprLiteral< double > >, Sz > | tvmet::hypot (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE |
Euclidean distance function on Vector and double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_jn< T, double >, VectorConstReference< T, Sz >, XprLiteral< double > >, Sz > | tvmet::jn (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_yn< T, double >, VectorConstReference< T, Sz >, XprLiteral< double > >, Sz > | tvmet::yn (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow< T, double >, VectorConstReference< T, Sz >, XprLiteral< double > >, Sz > | tvmet::pow (const Vector< T, Sz > &lhs, double rhs) TVMET_CXX_ALWAYS_INLINE |
power function on Vector and double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_atan2< T, long double >, VectorConstReference< T, Sz >, XprLiteral< long double > >, Sz > | tvmet::atan2 (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE |
arcus tangent of two variables function on Vector and long double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_drem< T, long double >, VectorConstReference< T, Sz >, XprLiteral< long double > >, Sz > | tvmet::drem (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and long double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_fmod< T, long double >, VectorConstReference< T, Sz >, XprLiteral< long double > >, Sz > | tvmet::fmod (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE |
floating-point remainder function on Vector and long double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_hypot< T, long double >, VectorConstReference< T, Sz >, XprLiteral< long double > >, Sz > | tvmet::hypot (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE |
Euclidean distance function on Vector and long double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_jn< T, long double >, VectorConstReference< T, Sz >, XprLiteral< long double > >, Sz > | tvmet::jn (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and long double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_yn< T, long double >, VectorConstReference< T, Sz >, XprLiteral< long double > >, Sz > | tvmet::yn (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE |
Bessel function on Vector and long double. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow< T, long double >, VectorConstReference< T, Sz >, XprLiteral< long double > >, Sz > | tvmet::pow (const Vector< T, Sz > &lhs, long double rhs) TVMET_CXX_ALWAYS_INLINE |
power function on Vector and long double. |
#define TVMET_DECLARE_MACRO | ( | NAME, | |||
TP | ) |
Value:
template<class T, std::size_t Sz> \ inline \ XprVector< \ XprBinOp< \ Fcnl_##NAME<T, TP >, \ VectorConstReference<T, Sz>, \ XprLiteral< TP > \ >, \ Sz \ > \ NAME(const Vector<T, Sz>& lhs, TP rhs) TVMET_CXX_ALWAYS_INLINE;
#define TVMET_DECLARE_MACRO | ( | NAME | ) |
#define TVMET_IMPLEMENT_MACRO | ( | NAME, | |||
TP | ) |
Value:
template<class T, std::size_t Sz> \ inline \ XprVector< \ XprBinOp< \ Fcnl_##NAME<T, TP >, \ VectorConstReference<T, Sz>, \ XprLiteral< TP > \ >, \ Sz \ > \ NAME(const Vector<T, Sz>& lhs, TP rhs) { \ typedef XprBinOp< \ Fcnl_##NAME<T, TP >, \ VectorConstReference<T, Sz>, \ XprLiteral< TP > \ > expr_type; \ return XprVector<expr_type, Sz>( \ expr_type(lhs.const_ref(), XprLiteral< TP >(rhs))); \ }
#define TVMET_IMPLEMENT_MACRO | ( | NAME | ) |
Author: |