Skip to main content

Crate bitgauss

Crate bitgauss 

Source
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 on BitVec, 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;

Modules§

bitmatrix
bitvector
data
graphic
Graph realization over GF(2): rewriting a matrix so that every column has Hamming weight at most 2.