Expand description
Implements bit matrices.
§Examples
Gets a mutable reference to the square bit matrix within this rectangular matrix, then performs a transitive closure.
use bit_matrix::BitMatrix;
let mut matrix = <BitMatrix>::new(7, 5);
matrix.set(1, 2, true);
matrix.set(2, 3, true);
matrix.set(3, 4, true);
{
let mut sub_matrix = matrix.sub_matrix_mut(1 .. 6);
sub_matrix.transitive_closure();
}
assert!(matrix[(1, 4)]);
matrix.reflexive_closure();
assert!(matrix[(0, 0)]);
assert!(matrix[(1, 1)]);
assert!(matrix[(2, 2)]);
assert!(matrix[(3, 3)]);This simple example calculates the transitive closure of 4x4 bit matrix.
use bit_matrix::BitMatrix;
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);Structs§
- BitMatrix
- A matrix of bits.