shockwave-plus/tensor_pcs/src/rs_config/naive.rs
tensor_pcs/src/rs_config/naive.rsRaw
1use crate::FieldExt;
2
3pub fn gen_config<F: FieldExt>(num_cols: usize) -> Vec<Vec<F>> {
4 assert!(num_cols.is_power_of_two());
5 let expansion_factor = 2;
6 let codeword_len = num_cols * expansion_factor;
7 let domain = (0..codeword_len)
8 .map(|i| F::from((i + 3) as u64))
9 .collect::<Vec<F>>();
10
11 let mut domain_powers = Vec::with_capacity(codeword_len);
12 for eval_at in domain {
13 let mut powers_i = vec![F::ONE];
14 for j in 0..(num_cols - 1) {
15 powers_i.push(powers_i[j] * eval_at);
16 }
17 domain_powers.push(powers_i);
18 }
19
20 domain_powers
21}