12 releases (breaking)
0.8.1 | Nov 17, 2024 |
---|---|
0.8.0 | Jun 26, 2024 |
0.7.1 | May 9, 2024 |
0.6.1 | Dec 31, 2021 |
0.0.1 | Sep 7, 2015 |
#172 in Algorithms
3,532 downloads per month
Used in 17 crates
(9 directly)
23KB
433 lines
Rust library that implements bit matrices. You can check the documentation here.
Built on top of contain-rs/bit-vec.
Examples
This simple example calculates the transitive closure of 4x4 bit matrix.
use bit_matrix::BitMatrix;
fn main() {
let mut matrix = BitMatrix::new(4, 4);
let points = &[
(0, 0),
(0, 1),
(0, 3),
(1, 0),
(1, 2),
(2, 0),
(2, 1),
(3, 1),
(3, 3),
];
for &(i, j) in points {
matrix.set(i, j, true);
}
matrix.transitive_closure();
let mut expected_matrix = BitMatrix::new(4, 4);
for i in 0..4 {
for j in 0..4 {
expected_matrix.set(i, j, true);
}
}
assert_eq!(matrix, expected_matrix);
}
License
Dual-licensed for compatibility with the Rust project.
Licensed under the Apache License Version 2.0: http://www.apache.org/licenses/LICENSE-2.0, or the MIT license: http://opensource.org/licenses/MIT, at your option.
Dependencies
~100–300KB