lin_algebra
A Rust library for linear algebra.
Features
All operations are currently implemented for matrices over GF(2):
- Compute the echelon form of a matrix along with the history of all the row operations applied.
- Compute the rank of the linear application represented by a matrix.
- Compute the kernel of the linear application represented by a matrix.
- Compute the image of the linear application represented by a matrix.
- Solve system of equations in GF(2).
Installation
Add the dependency to your Cargo.toml:
[]
= "0.3.1"
Usage
use GF2Matrix;
use MatrixTrait;
License
MIT
Python bindings
Python bindings are provided in the separate project
gf2_lin_algebra.
They are intentionally limited to GF(2) and focus on performance and simplicity. The Rust crate lin_algebra is designed to be more general.
Roadmap
This project is under active development, with a focus on both research and practical use.
Current and planned directions include:
- improving the internal design of GF(2) matrices
- adding optimized representations (e.g. bit-packed storage)
- generalizing the Rust core to support linear algebra over arbitrary fields
The Python bindings (gf2_lin_algebra) are intentionally limited to GF(2), while the Rust crate (lin_algebra) aims to be more general.
For a detailed list of planned improvements and areas where help is welcome, see ROADMAP.md.
Contributing
Contributions are welcome!
Please see CONTRIBUTING.md for guidelines.