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 (Euclidian 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 Euclidian norm (and quadratic functionals). For this version of (the mathematical objects known as) octonions, the Euclidian norm (also known as magnitude) is the square root of the Cayley norm.