pub struct BitMatrix { /* private fields */ }
Expand description
A matrix of bits.
Implementations§
Source§impl BitMatrix
impl BitMatrix
Sourcepub fn new(rows: usize, row_bits: usize) -> Self
pub fn new(rows: usize, row_bits: usize) -> Self
Create a new BitMatrix with specific numbers of bits in columns and rows.
Sourcepub fn grow(&mut self, num_rows: usize, value: bool)
pub fn grow(&mut self, num_rows: usize, value: bool)
Grows the matrix in-place, adding num_rows
rows filled with value
.
Sourcepub fn sub_matrix(&self, range: Range<usize>) -> BitSubMatrix<'_>
pub fn sub_matrix(&self, range: Range<usize>) -> BitSubMatrix<'_>
Returns a slice of the matrix’s rows.
Sourcepub fn split_at(&self, row: usize) -> (BitSubMatrix<'_>, BitSubMatrix<'_>)
pub fn split_at(&self, row: usize) -> (BitSubMatrix<'_>, BitSubMatrix<'_>)
Given a row’s index, returns a slice of all rows above that row, a reference to said row, and a slice of all rows below.
Functionally equivalent to (self.sub_matrix(0..row), &self[row], self.sub_matrix(row..self.num_rows()))
.
Sourcepub fn split_at_mut(
&mut self,
row: usize,
) -> (BitSubMatrixMut<'_>, BitSubMatrixMut<'_>)
pub fn split_at_mut( &mut self, row: usize, ) -> (BitSubMatrixMut<'_>, BitSubMatrixMut<'_>)
Given a row’s index, returns a slice of all rows above that row, a reference to said row, and a slice of all rows below.
Sourcepub fn transitive_closure(&mut self)
pub fn transitive_closure(&mut self)
Computes the transitive closure of the binary relation represented by the matrix.
Uses the Warshall’s algorithm.
Sourcepub fn reflexive_closure(&mut self)
pub fn reflexive_closure(&mut self)
Computes the reflexive closure of the binary relation represented by the matrix.
Trait Implementations§
Source§impl Index<(usize, usize)> for BitMatrix
Returns true
if a bit is enabled in the matrix, or false
otherwise.
impl Index<(usize, usize)> for BitMatrix
Returns true
if a bit is enabled in the matrix, or false
otherwise.