Crates.io | aljabar |
lib.rs | aljabar |
version | 1.0.2 |
source | src |
created_at | 2019-06-21 20:30:32.364086 |
updated_at | 2020-10-27 01:29:11.673873 |
description | A super generic, super experimental linear algebra library. |
homepage | https://github.com/maplant/aljabar |
repository | https://github.com/maplant/aljabar |
max_upload_size | |
id | 142689 |
size | 148,307 |
An experimental n-dimensional linear algebra and mathematics library for computer graphics, designed to be roughly compatible with cgmath.
The library provides:
vectors: Vector2
, Vector3
, Vector4
and Vector<T, const N: usize>
points: Point2
, Point3
, Point4
and Point<T, const N: usize>
matrices: Matrix2
, Matrix3
, Matrix4
and Matrix<T, const N: usize, const M: usize>
a quaternion type: Quaternion
orthonormal (rotation) matrices: Orthonormal
aljabar
supports Vectors and Matrices of any size and will provide
implementations for any mathematic operations that are supported by their
scalars. Additionally, aljabar can leverage Rust's type system to ensure that
operations are only applied to values that are the correct size. aljabar
can
do this while remaining no-std compatible.
aljabar
relies heavily on unstable Rust features such as const generics and thus
requires nightly to build.
For more information and a guide on getting started, check out the documentation.
mint
feature (off by default) adds a dependency to the mint crate and provides support for converting between aljabar types and mint types.serde
feature (off by default) adds serialization/deserialization support from the serde crate.rand
feature (off by default) allows you to create random points, vectors, and matrices by sampling from a random number source.swizzle
feature (off by default) enables swizzle functions for vectors.Pull request of any nature are welcome, especially regaring performance improvements. Although a aljabar is generic with respect to dimensionality, algorithms specialized for certain dimensions are straightforward to add and are intended to replace the generic algorithms along the most common code paths in the future.
Contact the author at map@maplant.com
or file an issue on github.