Boost QVM

rotate(q,v,s)

#include <boost/qvm/q.hpp>

namespace qvm
{
    //Only enabled if:
    //  is_q<A>::value &&
    //  is_v<B>::value && v_traits<B>::dim==3
    template <class A,class B>
    void rotate( A & a, B const & axis, typename q_traits<A>::scalar_type angle );
}

Effects:

As if:

a *= rot_q(axis,angle);

See also: boost/qvm/q.hpp