Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maplant/al-jabr
Extremely generic linear algebra libary for Rust
https://github.com/maplant/al-jabr
Last synced: 6 days ago
JSON representation
Extremely generic linear algebra libary for Rust
- Host: GitHub
- URL: https://github.com/maplant/al-jabr
- Owner: maplant
- License: apache-2.0
- Created: 2019-06-23T03:57:16.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-22T21:00:41.000Z (3 months ago)
- Last Synced: 2024-12-28T01:04:44.076Z (13 days ago)
- Language: Rust
- Size: 286 KB
- Stars: 221
- Watchers: 7
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# al-jabr
[![Documentation](https://img.shields.io/docsrs/al-jabr/latest?style=for-the-badge)](https://docs.rs/al-jabr)
[![Version](https://img.shields.io/crates/v/al-jabr.svg?style=for-the-badge)](https://crates.io/crates/al-jabr)
[![Downloads](https://img.shields.io/crates/d/al-jabr.svg?style=for-the-badge)](https://crates.io/crates/al-jabr)An n-dimensional linear algebra and mathematics library for computer
graphics and other applications, designed to be roughly compatible with
[cgmath](https://github.com/rustgd/cgmath).The library provides:
* small vectors: `Vector2`, `Vector3`, and `Vector4`
* points: `Point2`, `Point3`, and `Point4`
* large column vectors: `ColumnVector`
* matrices: `Matrix2`, `Matrix3`, `Matrix4` and `Matrix`
* 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](https://docs.rs/al-jabr/).
## Cargo Features
* The `mint` feature (off by default) adds a dependency to the [mint](https://crates.io/crates/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](https://crates.io/crates/serde) crate.
* The `rand` feature (off by default) allows you to create random points, vectors, and matrices by sampling from a random number source.## Contributions
Pull request of any nature are welcome.
## Support
Contact the author at `[email protected]` or [file an issue on github.](https://github.com/maplant/al-jabr/issues/new/choose)