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§
fn n_constraints(&self) -> usize
fn max_constraint_log_degree_bound(&self) -> u32
Sourcefn trace_log_degree_bounds(&self) -> TreeVec<ColumnVec<u32>>
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.
Sourcefn mask_points(
&self,
point: CirclePoint<SecureField>,
max_log_degree_bound: u32,
) -> TreeVec<ColumnVec<Vec<CirclePoint<SecureField>>>>
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.
fn preprocessed_column_indices(&self) -> ColumnVec<usize>
Sourcefn evaluate_constraint_quotients_at_point(
&self,
point: CirclePoint<SecureField>,
mask: &TreeVec<ColumnVec<Vec<SecureField>>>,
evaluation_accumulator: &mut PointEvaluationAccumulator,
max_log_degree_bound: u32,
)
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".