5 releases

0.1.4 Dec 3, 2023
0.1.3 Nov 30, 2023
0.1.2 Nov 29, 2023
0.1.1 Nov 24, 2023
0.1.0 Nov 24, 2023

#1823 in Math

MIT license

65KB
2K SLoC

binary_matrix

Rust implementation of dense binary matrices and vectors.

Includes a SIMD implementation of a binary matrix.

TODO

  • Arithmetic:
    • Implement the rest of the basic arithmetic between matrices and vectors
    • Faster matrix–vector multiplication using bits directly
    • Faster matrix–matrix multiplication using bits directly
    • Basic determinant calculation
    • Extract out basic reduced row echelon form into own method
    • Right multiplication of matrix by vector
  • Kernel:
    • Use Lanczos algorithm
  • Transpose:
    • Use rotates
    • Switch to SIMD
    • SIMD: Use portable_simd
    • Investigate using aarch64 assembly
    • Investigate using x86-64 assembly
  • Implement row-centric matrix as well
  • Sparse matrix support?

License

MIT


lib.rs:

Implementations of binary (GF(2)) matrices.

This is a work in progress.

Dependencies

~78KB