Expand description
bitgauss is a Rust library for doing linear algebra over the 2-element finite field. Some features include:
- getting and setting individual matrix elements (as
bools) - fast row operations and dot product using bitwise operations
- fast in-place and out-of-place matrix transpose using a recursive block method
- horizontal and vertical concatenation of matrices
- matrix multiplication
- Gaussian elimination and related methods (e.g. rank and inverse)
- Bixby-Wagner graph realization, for rewriting a matrix so that every column has Hamming weight at most 2 while preserving its rowspace
The two main data structures provided by this crate are:
- [
BitVec]: a vector of bits stored in 64-bit chunks, along with convenience methods for indexing, slicing, and manipulating bits BitMatrix: a two-dimensional matrix based onBitVec, which implements basic linear algebraic operations
Re-exports§
pub use bitmatrix::BitMatrix;pub use bitmatrix::RowOps;pub use bitvector::BitVector;pub use data::BitBlock;pub use data::BitData;pub use data::BitSlice;