arnaucube
arnaucube/sonobePublic Self-hosted repository
sonobe/folding-schemes/src/utils/mod.rs
folding-schemes/src/utils/mod.rsRaw
 1use ark_ff::PrimeField;
 2
 3pub mod gadgets;
 4pub mod hypercube;
 5pub mod lagrange_poly;
 6pub mod mle;
 7pub mod vec;
 8
 9// expose espresso local modules
10pub mod espresso;
11pub use crate::utils::espresso::multilinear_polynomial;
12pub use crate::utils::espresso::sum_check;
13pub use crate::utils::espresso::virtual_polynomial;
14
15/// For a given x, returns [1, x^1, x^2, ..., x^n-1];
16pub fn powers_of<F: PrimeField>(x: F, n: usize) -> Vec<F> {
17    let mut c: Vec<F> = vec![F::zero(); n];
18    c[0] = F::one();
19    for i in 1..n {
20        c[i] = c[i - 1] * x;
21    }
22    c
23}