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,approxLicensed 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.