pub trait ColumnEnvironment<'a, F: FftField> {
    type Column;

    // Required methods
    fn get_column(&self, col: &Self::Column) -> Option<&'a Evaluations<F, D<F>>>;
    fn column_domain(&self, col: &Self::Column) -> Domain;
    fn get_domain(&self, d: Domain) -> D<F>;
    fn get_constants(&self) -> &Constants<F>;
    fn get_challenges(&self) -> &Challenges<F>;
    fn vanishes_on_zero_knowledge_and_previous_rows(
        &self
    ) -> &'a Evaluations<F, D<F>>;
    fn l0_1(&self) -> F;
}

Required Associated Types§

source

type Column

The generic type of column the environment can use. In other words, with the multi-variate polynomial analogy, it is the variables the multi-variate polynomials are defined upon. i.e. for a polynomial P(X, Y, Z), the type will represent the variable X, Y and Z.

Required Methods§

source

fn get_column(&self, col: &Self::Column) -> Option<&'a Evaluations<F, D<F>>>

Return the evaluation of the given column, over the domain.

source

fn column_domain(&self, col: &Self::Column) -> Domain

Defines the domain over which the column is evaluated

source

fn get_domain(&self, d: Domain) -> D<F>

source

fn get_constants(&self) -> &Constants<F>

Return the constants parameters that the expression might use. For instance, it can be the matrix used by the linear layer in the permutation.

source

fn get_challenges(&self) -> &Challenges<F>

Return the challenges, coined by the verifier.

source

fn vanishes_on_zero_knowledge_and_previous_rows( &self ) -> &'a Evaluations<F, D<F>>

source

fn l0_1(&self) -> F

Return the value prod_{j != 1} (1 - omega^j), used for efficiently computing the evaluations of the unnormalized Lagrange basis polynomials.

Implementors§

source§

impl<'a, F: FftField> ColumnEnvironment<'a, F> for Environment<'a, F>