successors_from_mle_product

Function successors_from_mle_product 

Source
pub fn successors_from_mle_product<F: Field>(
    mles: &[&impl Mle<F>],
    degree: usize,
    round_index: usize,
) -> Result<Vec<Vec<F>>>
Expand description

this function will take a list of mle refs, and compute the element-wise product of all of their bookkeeping tables along with the “successors.”

for example, if we have two bookkeeping tables [a_1, a_2, a_3, a_4] and [c_1, c_2, c_3, c_4] and the degree of our expression at this index is 3, we need 4 evaluations for a unique curve. therefore first we will compute [a_1, a_2, (1-2)a_1 + 2a_2, (1-3)a_1 + 3a_2, a_3, a_4, (1-2)a_3 + 2a_4, (1-3)a_3 + 3a_4] and the same thing for the other mle and element-wise multiply both results. the resulting vector will always be size (degree + 1) * (2 ^ (max_num_vars - 1))

this function assumes that the first variable is an independent variable.