Skip to main content

Component

Trait Component 

Source
pub trait Component {
    // Required methods
    fn n_constraints(&self) -> usize;
    fn max_constraint_log_degree_bound(&self) -> u32;
    fn trace_log_degree_bounds(&self) -> TreeVec<ColumnVec<u32>>;
    fn mask_points(
        &self,
        point: CirclePoint<SecureField>,
        max_log_degree_bound: u32,
    ) -> TreeVec<ColumnVec<Vec<CirclePoint<SecureField>>>>;
    fn preprocessed_column_indices(&self) -> ColumnVec<usize>;
    fn evaluate_constraint_quotients_at_point(
        &self,
        point: CirclePoint<SecureField>,
        mask: &TreeVec<ColumnVec<Vec<SecureField>>>,
        evaluation_accumulator: &mut PointEvaluationAccumulator,
        max_log_degree_bound: u32,
    );
}
Expand description

A component is a set of trace columns of various sizes along with a set of constraints on them.

Required Methods§

Source

fn n_constraints(&self) -> usize

Source

fn max_constraint_log_degree_bound(&self) -> u32

Source

fn trace_log_degree_bounds(&self) -> TreeVec<ColumnVec<u32>>

Returns the degree bounds of each trace column. The returned TreeVec should be of size n_interaction_phases.

Source

fn mask_points( &self, point: CirclePoint<SecureField>, max_log_degree_bound: u32, ) -> TreeVec<ColumnVec<Vec<CirclePoint<SecureField>>>>

Returns the mask points for each trace column. The returned TreeVec should be of size n_interaction_phases. The parameter max_log_degree_bound is the maximum log degree of a committed polynomial in the pcs (this number is known to both prover and verifier). The mask points are translations of point by a multiple of the generator of the canonical coset of log size max_log_degree_bound.

Source

fn preprocessed_column_indices(&self) -> ColumnVec<usize>

Source

fn evaluate_constraint_quotients_at_point( &self, point: CirclePoint<SecureField>, mask: &TreeVec<ColumnVec<Vec<SecureField>>>, evaluation_accumulator: &mut PointEvaluationAccumulator, max_log_degree_bound: u32, )

Evaluates the lifted constraint quotients accumulation of the component at point.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§