Boost QVM

transform_vector

#include <boost/qvm/vm.hpp>

namespace boost
{
    namespace qvm
    {
        //Only enabled if:
        //  is_m<A>::value && is_v<B>::value &&
        //  m_traits<A>::rows==4 && m_traits<A>::cols==4 &&
        //  v_traits<B>::dim==3
        template <class A,class B>
        deduce_v2<A,B,3> >::type
        transform_vector( A const & a, B const & b );
    }
}

Effects:

As if:

return a * (v%XYZ0);

See also: boost/qvm/vm.hpp