@@ -68,34 +68,34 @@ impl<T: Idx> fmt::Debug for IdxSet<T> {
6868}
6969
7070impl < T : Idx > IdxSet < T > {
71- fn new ( init : Word , universe_size : usize ) -> Self {
72- let num_words = ( universe_size + ( BITS_PER_WORD - 1 ) ) / BITS_PER_WORD ;
71+ fn new ( init : Word , domain_size : usize ) -> Self {
72+ let num_words = ( domain_size + ( BITS_PER_WORD - 1 ) ) / BITS_PER_WORD ;
7373 IdxSet {
7474 _pd : Default :: default ( ) ,
7575 bits : vec ! [ init; num_words] ,
7676 }
7777 }
7878
79- /// Creates set holding every element whose index falls in range 0..universe_size .
80- pub fn new_filled ( universe_size : usize ) -> Self {
81- let mut result = Self :: new ( !0 , universe_size ) ;
82- result. trim_to ( universe_size ) ;
79+ /// Creates set holding every element whose index falls in range 0..domain_size .
80+ pub fn new_filled ( domain_size : usize ) -> Self {
81+ let mut result = Self :: new ( !0 , domain_size ) ;
82+ result. trim_to ( domain_size ) ;
8383 result
8484 }
8585
8686 /// Creates set holding no elements.
87- pub fn new_empty ( universe_size : usize ) -> Self {
88- Self :: new ( 0 , universe_size )
87+ pub fn new_empty ( domain_size : usize ) -> Self {
88+ Self :: new ( 0 , domain_size )
8989 }
9090
9191 /// Duplicates as a hybrid set.
9292 pub fn to_hybrid ( & self ) -> HybridIdxSet < T > {
93- // This universe_size may be slightly larger than the one specified
93+ // This domain_size may be slightly larger than the one specified
9494 // upon creation, due to rounding up to a whole word. That's ok.
95- let universe_size = self . bits . len ( ) * BITS_PER_WORD ;
95+ let domain_size = self . bits . len ( ) * BITS_PER_WORD ;
9696
9797 // Note: we currently don't bother trying to make a Sparse set.
98- HybridIdxSet :: Dense ( self . to_owned ( ) , universe_size )
98+ HybridIdxSet :: Dense ( self . to_owned ( ) , domain_size )
9999 }
100100
101101 /// Removes all elements
@@ -105,29 +105,29 @@ impl<T: Idx> IdxSet<T> {
105105 }
106106 }
107107
108- /// Sets all elements up to `universe_size `
109- pub fn set_up_to ( & mut self , universe_size : usize ) {
108+ /// Sets all elements up to `domain_size `
109+ pub fn set_up_to ( & mut self , domain_size : usize ) {
110110 for b in & mut self . bits {
111111 * b = !0 ;
112112 }
113- self . trim_to ( universe_size ) ;
113+ self . trim_to ( domain_size ) ;
114114 }
115115
116- /// Clear all elements above `universe_size `.
117- fn trim_to ( & mut self , universe_size : usize ) {
116+ /// Clear all elements above `domain_size `.
117+ fn trim_to ( & mut self , domain_size : usize ) {
118118 // `trim_block` is the first block where some bits have
119119 // to be cleared.
120- let trim_block = universe_size / BITS_PER_WORD ;
120+ let trim_block = domain_size / BITS_PER_WORD ;
121121
122122 // all the blocks above it have to be completely cleared.
123123 if trim_block < self . bits . len ( ) {
124124 for b in & mut self . bits [ trim_block+1 ..] {
125125 * b = 0 ;
126126 }
127127
128- // at that block, the `universe_size % BITS_PER_WORD` lsbs
128+ // at that block, the `domain_size % BITS_PER_WORD` LSBs
129129 // should remain.
130- let remaining_bits = universe_size % BITS_PER_WORD ;
130+ let remaining_bits = domain_size % BITS_PER_WORD ;
131131 let mask = ( 1 <<remaining_bits) -1 ;
132132 self . bits [ trim_block] &= mask;
133133 }
@@ -293,8 +293,8 @@ impl<T: Idx> SparseIdxSet<T> {
293293 }
294294 }
295295
296- fn to_dense ( & self , universe_size : usize ) -> IdxSet < T > {
297- let mut dense = IdxSet :: new_empty ( universe_size ) ;
296+ fn to_dense ( & self , domain_size : usize ) -> IdxSet < T > {
297+ let mut dense = IdxSet :: new_empty ( domain_size ) ;
298298 for elem in self . 0 . iter ( ) {
299299 dense. add ( elem) ;
300300 }
@@ -323,28 +323,24 @@ impl<'a, T: Idx> Iterator for SparseIter<'a, T> {
323323/// Like IdxSet, but with a hybrid representation: sparse when there are few
324324/// elements in the set, but dense when there are many. It's especially
325325/// efficient for sets that typically have a small number of elements, but a
326- /// large `universe_size `, and are cleared frequently.
326+ /// large `domain_size `, and are cleared frequently.
327327#[ derive( Clone , Debug ) ]
328328pub enum HybridIdxSet < T : Idx > {
329329 Sparse ( SparseIdxSet < T > , usize ) ,
330330 Dense ( IdxSet < T > , usize ) ,
331331}
332332
333333impl < T : Idx > HybridIdxSet < T > {
334- pub fn new_empty ( universe_size : usize ) -> Self {
335- HybridIdxSet :: Sparse ( SparseIdxSet :: new ( ) , universe_size )
334+ pub fn new_empty ( domain_size : usize ) -> Self {
335+ HybridIdxSet :: Sparse ( SparseIdxSet :: new ( ) , domain_size )
336336 }
337337
338- fn universe_size ( & mut self ) -> usize {
339- match * self {
338+ pub fn clear ( & mut self ) {
339+ let domain_size = match * self {
340340 HybridIdxSet :: Sparse ( _, size) => size,
341341 HybridIdxSet :: Dense ( _, size) => size,
342- }
343- }
344-
345- pub fn clear ( & mut self ) {
346- let universe_size = self . universe_size ( ) ;
347- * self = HybridIdxSet :: new_empty ( universe_size) ;
342+ } ;
343+ * self = HybridIdxSet :: new_empty ( domain_size) ;
348344 }
349345
350346 /// Returns true iff set `self` contains `elem`.
@@ -374,11 +370,11 @@ impl<T: Idx> HybridIdxSet<T> {
374370 // appease the borrow checker.
375371 let dummy = HybridIdxSet :: Sparse ( SparseIdxSet :: new ( ) , 0 ) ;
376372 match mem:: replace ( self , dummy) {
377- HybridIdxSet :: Sparse ( sparse, universe_size ) => {
378- let mut dense = sparse. to_dense ( universe_size ) ;
373+ HybridIdxSet :: Sparse ( sparse, domain_size ) => {
374+ let mut dense = sparse. to_dense ( domain_size ) ;
379375 let changed = dense. add ( elem) ;
380376 assert ! ( changed) ;
381- mem:: replace ( self , HybridIdxSet :: Dense ( dense, universe_size ) ) ;
377+ mem:: replace ( self , HybridIdxSet :: Dense ( dense, domain_size ) ) ;
382378 changed
383379 }
384380 _ => panic ! ( "impossible" ) ,
@@ -401,7 +397,7 @@ impl<T: Idx> HybridIdxSet<T> {
401397 /// Converts to a dense set, consuming itself in the process.
402398 pub fn to_dense ( self ) -> IdxSet < T > {
403399 match self {
404- HybridIdxSet :: Sparse ( sparse, universe_size ) => sparse. to_dense ( universe_size ) ,
400+ HybridIdxSet :: Sparse ( sparse, domain_size ) => sparse. to_dense ( domain_size ) ,
405401 HybridIdxSet :: Dense ( dense, _) => dense,
406402 }
407403 }
0 commit comments