@@ -326,23 +326,23 @@ where
326
326
R : Idx ,
327
327
C : Idx ,
328
328
{
329
- columns : usize ,
330
- vector : IndexVec < R , BitArray < C > > ,
329
+ num_columns : usize ,
330
+ rows : IndexVec < R , BitArray < C > > ,
331
331
}
332
332
333
333
impl < R : Idx , C : Idx > SparseBitMatrix < R , C > {
334
334
/// Create a new empty sparse bit matrix with no rows or columns.
335
- pub fn new ( columns : usize ) -> Self {
335
+ pub fn new ( num_columns : usize ) -> Self {
336
336
Self {
337
- columns ,
338
- vector : IndexVec :: new ( ) ,
337
+ num_columns ,
338
+ rows : IndexVec :: new ( ) ,
339
339
}
340
340
}
341
341
342
342
fn ensure_row ( & mut self , row : R ) {
343
- let columns = self . columns ;
344
- self . vector
345
- . ensure_contains_elem ( row, || BitArray :: new ( columns ) ) ;
343
+ let num_columns = self . num_columns ;
344
+ self . rows
345
+ . ensure_contains_elem ( row, || BitArray :: new ( num_columns ) ) ;
346
346
}
347
347
348
348
/// Sets the cell at `(row, column)` to true. Put another way, insert
@@ -351,15 +351,15 @@ impl<R: Idx, C: Idx> SparseBitMatrix<R, C> {
351
351
/// Returns true if this changed the matrix, and false otherwise.
352
352
pub fn add ( & mut self , row : R , column : C ) -> bool {
353
353
self . ensure_row ( row) ;
354
- self . vector [ row] . insert ( column)
354
+ self . rows [ row] . insert ( column)
355
355
}
356
356
357
357
/// Do the bits from `row` contain `column`? Put another way, is
358
358
/// the matrix cell at `(row, column)` true? Put yet another way,
359
359
/// if the matrix represents (transitive) reachability, can
360
360
/// `row` reach `column`?
361
361
pub fn contains ( & self , row : R , column : C ) -> bool {
362
- self . vector . get ( row) . map_or ( false , |r| r. contains ( column) )
362
+ self . rows . get ( row) . map_or ( false , |r| r. contains ( column) )
363
363
}
364
364
365
365
/// Add the bits from row `read` to the bits from row `write`,
@@ -370,49 +370,49 @@ impl<R: Idx, C: Idx> SparseBitMatrix<R, C> {
370
370
/// `write` can reach everything that `read` can (and
371
371
/// potentially more).
372
372
pub fn merge ( & mut self , read : R , write : R ) -> bool {
373
- if read == write || self . vector . get ( read) . is_none ( ) {
373
+ if read == write || self . rows . get ( read) . is_none ( ) {
374
374
return false ;
375
375
}
376
376
377
377
self . ensure_row ( write) ;
378
- let ( bitvec_read, bitvec_write) = self . vector . pick2_mut ( read, write) ;
378
+ let ( bitvec_read, bitvec_write) = self . rows . pick2_mut ( read, write) ;
379
379
bitvec_write. merge ( bitvec_read)
380
380
}
381
381
382
382
/// Merge a row, `from`, into the `into` row.
383
383
pub fn merge_into ( & mut self , into : R , from : & BitArray < C > ) -> bool {
384
384
self . ensure_row ( into) ;
385
- self . vector [ into] . merge ( from)
385
+ self . rows [ into] . merge ( from)
386
386
}
387
387
388
388
/// Add all bits to the given row.
389
389
pub fn add_all ( & mut self , row : R ) {
390
390
self . ensure_row ( row) ;
391
- self . vector [ row] . insert_all ( ) ;
391
+ self . rows [ row] . insert_all ( ) ;
392
392
}
393
393
394
394
/// Number of elements in the matrix.
395
395
pub fn len ( & self ) -> usize {
396
- self . vector . len ( )
396
+ self . rows . len ( )
397
397
}
398
398
399
399
pub fn rows ( & self ) -> impl Iterator < Item = R > {
400
- self . vector . indices ( )
400
+ self . rows . indices ( )
401
401
}
402
402
403
403
/// Iterates through all the columns set to true in a given row of
404
404
/// the matrix.
405
405
pub fn iter < ' a > ( & ' a self , row : R ) -> impl Iterator < Item = C > + ' a {
406
- self . vector . get ( row) . into_iter ( ) . flat_map ( |r| r. iter ( ) )
406
+ self . rows . get ( row) . into_iter ( ) . flat_map ( |r| r. iter ( ) )
407
407
}
408
408
409
409
/// Iterates through each row and the accompanying bit set.
410
410
pub fn iter_enumerated < ' a > ( & ' a self ) -> impl Iterator < Item = ( R , & ' a BitArray < C > ) > + ' a {
411
- self . vector . iter_enumerated ( )
411
+ self . rows . iter_enumerated ( )
412
412
}
413
413
414
414
pub fn row ( & self , row : R ) -> Option < & BitArray < C > > {
415
- self . vector . get ( row)
415
+ self . rows . get ( row)
416
416
}
417
417
}
418
418
0 commit comments