al-jabr
An n-dimensional linear algebra and mathematics library for computer graphics and other applications, designed to be roughly compatible with cgmath.
The library provides:
- vectors:
Vector2
,Vector3
,Vector4
andVector<T, const N: usize>
- points:
Point2
,Point3
,Point4
andPoint<T, const N: usize>
- matrices:
Matrix2
,Matrix3
,Matrix4
andMatrix<T, const N: usize, const M: usize>
- a quaternion type:
Quaternion
- orthonormal (rotation) matrices:
Orthonormal
al-jabr
supports Vectors and Matrices of any size and will provide
implementations for any mathematic operations that are supported by their
scalars. Additionally, al-jabr
can leverage Rust's type system to ensure that
operations are only applied to values that are the correct size. al-jabr
can
do this while remaining no-std compatible.
For more information and a guide on getting started, check out the documentation.
Cargo Features
- The
mint
feature (off by default) adds a dependency to the mint crate and provides support for converting between al-jabr types and mint types. - The
serde
feature (off by default) adds serialization/deserialization support from the serde crate. - The
rand
feature (off by default) allows you to create random points, vectors, and matrices by sampling from a random number source. - The
swizzle
feature (off by default) enables swizzle functions for vectors.
Contributions
Pull request of any nature are welcome.
Support
Contact the author at [email protected]
or file an issue on github.