# QVM: Quaternions, Vectors, Matrices

### boost/qvm/vec_mat_operations.hpp

This header defines all available operations between vectors and matrices.

### Synopsis:

#include <boost/qvm/vec_mat_operations.hpp>

    namespace boost
    {
        namespace qvm
        {
            //Only enabled if:
            //  is_mat<A>::value && is_vec<B>::value &&
            //  mat_traits<A>::cols==vec_traits<B>::dim
            template <class A,class B>
            typename deduce_vec2<A,B,mat_traits<A>::rows>::type
            operator*( A const & a, B const & b );

            //Only enabled if:
            //  is_mat<A>::value && is_vec<B>::value &&
            //  mat_traits<A>::rows==4 && mat_traits<A>::cols==4 &&
            //  vec_traits<B>::dim==3
            template <class A,class B>
            deduce_vec2<A,B,3> >::type
            transform_vector( A const & a, B const & b );

            //Only enabled if:
            //  is_mat<A>::value && is_vec<B>::value &&
            //  mat_traits<A>::rows==4 && mat_traits<A>::cols==4 &&
            //  vec_traits<B>::dim==3
            template <class A,class B>
            deduce_vec2<A,B,3> >::type
            transform_point( A const & a, B const & b );
        }
    }

See also: boost/qvm/operations.hpp | boost/qvm/vec_mat_operations2.hpp | boost/qvm/vec_mat_operations3.hpp | boost/qvm/vec_mat_operations4.hpp | Code Generator | operator*(mat,vec) | operator*(vec,mat) | transform_point | transform_vector