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>>
whereA<T>
is previous algebra.
- Transformations:
transform::Moebius<T, A<T>>
- Moebius transform, whereA<T>
is some algebra.
To construct hypercomplex types from your own type you need to implement Algebra
trait for it.
Crate could be used in no_std
mode.
std
- Usestd
. Enabled by default.random
- Hypercomplex number random generator.approx
- Approximate comparison of hypercomplex numbers.
cargo test --features random,approx
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.