@@ -36,7 +36,7 @@ type CoefsCollection = Vec<Vec<Coef>>;
3636/**
3737 * every vector comes in order omega / 0 / c+1 / 2 / 1
3838 */
39- fn expand_finite_downward_closure (
39+ fn compute_possible_coefs (
4040 maximal_finite_coef : & Vec < u8 > ,
4141 is_omega_sometimes_possible : & Vec < bool > ,
4242 is_omega_always_possible : & Vec < bool > ,
@@ -57,7 +57,10 @@ fn expand_finite_downward_closure(
5757 let is_omega_always = is_omega_always_possible[ i] ;
5858 match ( is_omega_always, is_omega_sometimes, coef) {
5959 ( true , _, _) => vec ! [ OMEGA ] ,
60- ( false , true , _) => vec ! [ C0 , OMEGA ] ,
60+ ( false , true , c) => std:: iter:: once ( C0 )
61+ . chain ( std:: iter:: once ( OMEGA ) )
62+ . chain ( ( 1 ..c + 1 ) . map ( Coef :: Value ) . rev ( ) )
63+ . collect ( ) ,
6164 ( false , false , c) => std:: iter:: once ( C0 )
6265 . chain ( ( 1 ..c + 1 ) . map ( Coef :: Value ) . rev ( ) )
6366 . collect ( ) ,
@@ -293,7 +296,7 @@ impl DownSet {
293296 ) ;
294297 trace ! ( "is_omega_always_possible: {:?}\n " , is_omega_always_possible) ;
295298
296- let all_possible_coefs: CoefsCollection = expand_finite_downward_closure (
299+ let all_possible_coefs: CoefsCollection = compute_possible_coefs (
297300 & max_finite_coords_pre,
298301 & is_omega_sometimes_possible,
299302 & is_omega_always_possible,
@@ -963,8 +966,8 @@ mod test {
963966
964967 #[ test]
965968 fn expand_finite_downward_closure ( ) {
966- use crate :: downset:: expand_finite_downward_closure ;
967- let expanded = expand_finite_downward_closure (
969+ use crate :: downset:: compute_possible_coefs ;
970+ let expanded = compute_possible_coefs (
968971 & vec ! [ 0 , 3 , 1 , 0 ] ,
969972 & vec ! [ true , false , false , true ] ,
970973 & vec ! [ true , false , false , false ] ,
0 commit comments