#complex #quaternion #math


Lightweight complex and hypercomplex algebra library

3 unstable releases

0.2.0 Dec 5, 2020
0.1.1 May 14, 2019
0.1.0 Apr 18, 2019

#476 in Math


1.5K SLoC


Crates.io Docs.rs Travis CI Appveyor Codecov.io License

Lightweight complex and hypercomplex algebra library.


  • Complex and hypercomplex numbers:
    • Complex<T> - 2-dimensional commutative and associative algebra.
    • Quaternion<T> - 4-dimensional associative but non-commutative algebra.
    • Octonion<T> - 8-dimensional non-commutative and non-associative algebra.
    • Sedenion<T> - 16-dimensional non-commutative and non-associative algebra with nontrivial zero divisors.
    • and following algebras created by Cayley-Dickson construction Construct<T, A<T>> where A<T> is previous algebra.
  • Transformations:
    • transform::Moebius<T, A<T>> - Moebius transform, where A<T> is some algebra.

To construct hypercomplex types from your own type you need to implement Algebra trait for it.

Crate Features

Crate could be used in no_std mode.

  • std - Use std. Enabled by default.
  • random - Hypercomplex number random generator.
  • approx - Approximate comparison of hypercomplex numbers.


cargo test --features random,approx


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~16K SLoC