Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

QVM: Quaternions, Vectors, Matrices


#include <boost/qvm/mat_operations.hpp>

namespace qvm
    //Only enabled if:
    //  is_mat<A>::value && mat_traits<A>::rows>=3 &&
    //  mat_traits<A>::rows==mat_traits<A>::cols
    template <class A>
    void rotate_x( A & a, typename mat_traits<A>::scalar_type angle );


As if:

a *= rotx_mat<mat_traits<A>::rows>(angle);