A Julia implementation of quaternions.
Quaternions are best known for their suitability as representations of 3D rotational orientation. They can also be viewed as an extension of complex numbers.
julia> using Quaternions julia> k = quat(0, 0, 0, 1) Quaternion{Int64}(0, 0, 0, 1) julia> j = quat(0, 0, 1, 0) Quaternion{Int64}(0, 0, 1, 0) julia> i = j*k Quaternion{Int64}(0, 1, 0, 0) julia> i^2 == j^2 == k^2 == i*j*k == -1 # Similar to `im^2`. true julia> 1 + i + k + j # Compatible with arithmetic operations as a `Number`. Quaternion{Int64}(1, 1, 1, 1)Check out the docs for further instructions.
In JuliaGeometry organization, there is also Octonions.jl package.