Skip to content

Commit fd40788

Browse files
committed
computation fix
1 parent ef0eb1f commit fd40788

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/downset.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)