mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-08-08 23:53:13 +00:00
Minor addition to partial product test
This commit is contained in:
parent
525db6c461
commit
d456efbc3f
@ -157,7 +157,7 @@ pub struct CommonCircuitData<F: Extendable<D>, const D: usize> {
|
|||||||
/// The `{k_i}` valued used in `S_ID_i` in Plonk's permutation argument.
|
/// The `{k_i}` valued used in `S_ID_i` in Plonk's permutation argument.
|
||||||
pub(crate) k_is: Vec<F>,
|
pub(crate) k_is: Vec<F>,
|
||||||
|
|
||||||
/// The number of partial products needed to compute the `Z` polynomials, as well as the number
|
/// The number of partial products needed to compute the `Z` polynomials and the number
|
||||||
/// of partial products needed to compute the final product.
|
/// of partial products needed to compute the final product.
|
||||||
pub(crate) num_partial_products: (usize, usize),
|
pub(crate) num_partial_products: (usize, usize),
|
||||||
|
|
||||||
|
|||||||
@ -86,17 +86,27 @@ mod tests {
|
|||||||
let v = vec![1, 2, 3, 4, 5, 6];
|
let v = vec![1, 2, 3, 4, 5, 6];
|
||||||
let p = partial_products(&v, 2);
|
let p = partial_products(&v, 2);
|
||||||
assert_eq!(p, vec![2, 12, 30, 24, 720]);
|
assert_eq!(p, vec![2, 12, 30, 24, 720]);
|
||||||
assert_eq!(p.len(), num_partial_products(v.len(), 2).0);
|
let nums = num_partial_products(v.len(), 2);
|
||||||
|
assert_eq!(p.len(), nums.0);
|
||||||
assert!(check_partial_products(&v, &p, 2)
|
assert!(check_partial_products(&v, &p, 2)
|
||||||
.iter()
|
.iter()
|
||||||
.all(|x| x.is_zero()));
|
.all(|x| x.is_zero()));
|
||||||
|
assert_eq!(
|
||||||
|
v.into_iter().product::<i32>(),
|
||||||
|
p[p.len() - nums.1..].iter().copied().product(),
|
||||||
|
);
|
||||||
|
|
||||||
let v = vec![1, 2, 3, 4, 5, 6];
|
let v = vec![1, 2, 3, 4, 5, 6];
|
||||||
let p = partial_products(&v, 3);
|
let p = partial_products(&v, 3);
|
||||||
assert_eq!(p, vec![6, 120]);
|
assert_eq!(p, vec![6, 120]);
|
||||||
assert_eq!(p.len(), num_partial_products(v.len(), 3).0);
|
let nums = num_partial_products(v.len(), 3);
|
||||||
|
assert_eq!(p.len(), nums.0);
|
||||||
assert!(check_partial_products(&v, &p, 3)
|
assert!(check_partial_products(&v, &p, 3)
|
||||||
.iter()
|
.iter()
|
||||||
.all(|x| x.is_zero()));
|
.all(|x| x.is_zero()));
|
||||||
|
assert_eq!(
|
||||||
|
v.into_iter().product::<i32>(),
|
||||||
|
p[p.len() - nums.1..].iter().copied().product(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user