| Home | Libraries | People | FAQ | More

## Octonion Value Operations

##### Real and Unreal

    template<typename T> T  real(octonion<T> const & o);
    template<typename T> octonion<T> unreal(octonion<T> const & o);

These return `o.real()` and `o.unreal()` respectively.

##### conj

    template<typename T> octonion<T> conj(octonion<T> const & o);

This returns the conjugate of the octonion.

##### sup

    template<typename T> T   sup(octonion<T> const & o);

This return the sup norm (the greatest among `abs(o.R_component_1())...abs(o.R_component_8()))` of the octonion.

##### l1

    template<typename T> T   l1(octonion<T> const & o);

This return the l1 norm (`abs(o.R_component_1())+...+abs(o.R_component_8())`) of the octonion.

##### abs

    template<typename T> T   abs(octonion<T> const & o);

This return the magnitude (Euclidean norm) of the octonion.

##### norm

    template<typename T> T  norm(octonion<T>const  & o);

This return the (Cayley) norm of the octonion. The term "norm" might be confusing, as most people associate it with the Euclidean norm (and quadratic functionals). For this version of (the mathematical objects known as) octonions, the Euclidean norm (also known as magnitude) is the square root of the Cayley norm.