Boost C++ Libraries

...one 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

zero_magnitude_error

#include <boost/qvm/error.hpp>

namespace boost
{
    namespace qvm
    {
        struct zero_magnitude_error: virtual error { };
    }
}

This exception indicates that an operation requires a vector or a quaternion with non-zero magnitude, but the computed magnitude is zero.