#include <boost/qvm/vec_operations.hpp>
namespace boost { namespace qvm { //*** Vector operations *** //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> A & assign( A & a, B const & b ); //Only enabled if: // is_vec<R>::value && is_vec<A>::value && // vec_traits<R>::dim==vec_traits<A>::dim template <class R,class A> R convert_to( A const & a ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> A & operator-=( A & a, B const & b ); //Only enabled if: is_vec<A>::value template <class A> typename deduce_vec<A>::type operator-( A const & a ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> typename deduce_vec2<A,B,vec_traits<A>::dim>::type operator-( A const & a, B const & b ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> A & operator+=( A & a, B const & b ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> typename deduce_vec2<A,B,vec_traits<A>::dim>::type operator+( A const & a, B const & b ); //Only enabled if: is_vec<A>::value && is_scalar<B>::value template <class A,class B> A & operator/=( A & a, B b ); //Only enabled if: is_vec<A>::value && is_scalar<B>::value template <class A,class B> typename deduce_vec<A>::type operator/( A const & a, B b ); //Only enabled if: is_vec<A>::value && is_scalar<B>::value template <class A,class B> A & operator*=( A & a, B b ); //Only enabled if: is_vec<A>::value && is_scalar<B>::value template <class A> typename deduce_vec<A>::type operator*( A const & a, B b ); //Only enabled if: is_scalar<A>::value && is_vec<B>::value template <class A> typename deduce_vec<B>::type operator*( A a, B const & b ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> bool operator==( A const & a, B const & b ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> bool operator!=( A const & a, B const & b ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B,class Cmp> bool cmp( A const & a, B const & b, Cmp pred ); //Only enabled if: // is_vec<A>::value template <class A> typename vec_traits<A>::scalar_type mag_sqr( A const & a ); //Only enabled if: // is_vec<A>::value template <class A> typename vec_traits<A>::scalar_type mag( A const & a ); //Only enabled if: // is_vec<A>::value template <class A> typename deduce_vec<A>::type normalized( A const & a ); //Only enabled if: // is_vec<A>::value template <class A> void normalize( A & a ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==vec_traits<B>::dim template <class A,class B> typename deduce_scalar<A,B>::type dot( A const & a, B const & b ); //Only enabled if: // is_vec<A>::value && is_vec<B>::value && // vec_traits<A>::dim==3 && vec_traits<B>::dim==3 template <class A,class B> typename deduce_vec2<A,B,3>::type cross( A const & a, B const & b ); template <class T,int S> -unspecified-return-type- zero_vec(); //Only enabled if: // is_vec<A>::value template <class A> void set_zero( A & a ); //Only enabled if: is_vec<A>::value template <class A> -unspecified-return-type- vref( A & a ); //Only enabled if: is_vec<A>::value template <class Scalar,class A> -unspecified-return_type- scalar_cast( A const & a ); } }
This is a list of all vector operations implemented by Boost QVM -- click on functions for individual documentation. General notes: