|
Tiny Vector Matrix library using Expression Templates | Sourceforge Project Page |
#include <tvmet/NumericTraits.h>
#include <tvmet/Extremum.h>
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_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_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_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_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 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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. | |
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_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, std::complex< T > >, VectorConstReference< T, Sz >, XprLiteral< std::complex < T > > >, Sz > | tvmet::pow (const Vector< T, Sz > &lhs, const std::complex< T > &rhs) TVMET_CXX_ALWAYS_INLINE |
power function on Vector and std::complex<T>. | |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow < std::complex< T > , std::complex< T > >, VectorConstReference < std::complex< T >, Sz > , XprLiteral< std::complex< T > > >, Sz > | tvmet::pow (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_pow < std::complex< T >, T > , VectorConstReference < std::complex< T >, Sz > , XprLiteral< T > >, Sz > | tvmet::pow (const Vector< std::complex< T >, Sz > &lhs, const T &rhs) TVMET_CXX_ALWAYS_INLINE |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp< Fcnl_pow < std::complex< T >, int > , VectorConstReference < std::complex< T >, Sz > , XprLiteral< int > >, Sz > | tvmet::pow (const Vector< std::complex< T >, Sz > &lhs, int rhs) TVMET_CXX_ALWAYS_INLINE |
template<class T, std::size_t Sz> | |
XprVector< XprBinOp < Fcnl_polar< T, T > , VectorConstReference< T, Sz > , XprLiteral< T > >, Sz > | tvmet::polar (const Vector< T, Sz > &lhs, const T &rhs) TVMET_CXX_ALWAYS_INLINE |
#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: |