...one of the most highly
regarded and expertly designed C++ library projects in the
world.

— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards

#include <boost/qvm/quat_operations.hpp>

namespace boost { namespace qvm { //Only enabled if: is_quat<A>::value template <class A> typename deduce_quat<A>::type inverse( A const & a ); } }

Computes the multiplicative inverse of *a*, or the conjugate-to-norm ratio.

If the magnitude of *a* is zero, throws *zero_magnitude_error*.

If *a* is known to be unit length, *conjugate* is equivalent to *inverse*, yet it is faster to compute.