pub struct InfoEvaluator {
pub mask_offsets: TreeVec<Vec<Vec<isize>>>,
pub n_constraints: usize,
pub preprocessed_columns: Vec<PreProcessedColumnId>,
pub logup: LogupAtRow<Self>,
pub arithmetic_counts: ArithmeticCounts,
pub logup_counts: LogupCountPerRow,
}Expand description
Collects information about the constraints. This includes mask offsets and columns at each interaction, the number of constraints and number of arithmetic operations.
Fields§
§mask_offsets: TreeVec<Vec<Vec<isize>>>§n_constraints: usize§preprocessed_columns: Vec<PreProcessedColumnId>§logup: LogupAtRow<Self>§arithmetic_counts: ArithmeticCounts§logup_counts: LogupCountPerRowImplementations§
Source§impl InfoEvaluator
impl InfoEvaluator
pub fn new( log_size: u32, preprocessed_columns: Vec<PreProcessedColumnId>, claimed_sum: SecureField, ) -> Self
Trait Implementations§
Source§impl Default for InfoEvaluator
impl Default for InfoEvaluator
Source§fn default() -> InfoEvaluator
fn default() -> InfoEvaluator
Returns the “default value” for a type. Read more
Source§impl EvalAtRow for InfoEvaluator
impl EvalAtRow for InfoEvaluator
Source§fn finalize_logup_batched(&mut self, batching: &Vec<usize>)
fn finalize_logup_batched(&mut self, batching: &Vec<usize>)
Finalize the logup by adding the constraints for the fractions, batched by
the given batching.
batching should contain the batch into which every logup entry should be inserted.
Source§fn finalize_logup(&mut self)
fn finalize_logup(&mut self)
Finalizes the row’s logup in the default way. Currently, this means no batching.
Source§fn finalize_logup_in_pairs(&mut self)
fn finalize_logup_in_pairs(&mut self)
Finalizes the row’s logup, batched in pairs. TODO(alont) Remove this once a better batching mechanism is implemented.
Source§type F = ArithmeticCounter<false>
type F = ArithmeticCounter<false>
The field type holding values of columns for the component. These are the inputs to the
constraints. It might be BaseField packed types, or even SecureField, when evaluating
the columns out of domain.
Source§type EF = ArithmeticCounter<true>
type EF = ArithmeticCounter<true>
A field type representing the closure of
F with multiplying by SecureField. Constraints
usually get multiplied by SecureField values for security.Source§fn next_interaction_mask<const N: usize>(
&mut self,
interaction: usize,
offsets: [isize; N],
) -> [Self::F; N]
fn next_interaction_mask<const N: usize>( &mut self, interaction: usize, offsets: [isize; N], ) -> [Self::F; N]
Returns the mask values of the given offsets for the next column in the interaction.
fn get_preprocessed_column(&mut self, column: PreProcessedColumnId) -> Self::F
Source§fn add_constraint<G>(&mut self, constraint: G)
fn add_constraint<G>(&mut self, constraint: G)
Adds a constraint to the component.
Source§fn combine_ef(values: [Self::F; 4]) -> Self::EF
fn combine_ef(values: [Self::F; 4]) -> Self::EF
Combines 4 base field values into a single extension field value.
Source§fn add_to_relation<R: Relation<Self::F, Self::EF>>(
&mut self,
entry: RelationEntry<'_, Self::F, Self::EF, R>,
)
fn add_to_relation<R: Relation<Self::F, Self::EF>>( &mut self, entry: RelationEntry<'_, Self::F, Self::EF, R>, )
Adds
entry.values to entry.relation with entry.multiplicity for all ‘entry’ in
‘entries’, batched together.
Constraint degree increases with number of batched constraints as the denominators are
multiplied.fn write_logup_frac(&mut self, fraction: Fraction<Self::EF, Self::EF>)
Source§fn next_trace_mask(&mut self) -> Self::F
fn next_trace_mask(&mut self) -> Self::F
Returns the next mask value for the first interaction at offset 0.
Source§fn next_extension_interaction_mask<const N: usize>(
&mut self,
interaction: usize,
offsets: [isize; N],
) -> [Self::EF; N]
fn next_extension_interaction_mask<const N: usize>( &mut self, interaction: usize, offsets: [isize; N], ) -> [Self::EF; N]
Returns the extension mask values of the given offsets for the next extension degree many
columns in the interaction.
Source§fn add_intermediate(&mut self, val: Self::F) -> Self::F
fn add_intermediate(&mut self, val: Self::F) -> Self::F
Adds an intermediate value in the base field to the component and returns its value.
Does nothing by default.
Source§fn add_extension_intermediate(&mut self, val: Self::EF) -> Self::EF
fn add_extension_intermediate(&mut self, val: Self::EF) -> Self::EF
Adds an intermediate value in the extension field to the component and returns its value.
Does nothing by default.
Auto Trait Implementations§
impl !RefUnwindSafe for InfoEvaluator
impl !Send for InfoEvaluator
impl !Sync for InfoEvaluator
impl !UnwindSafe for InfoEvaluator
impl Freeze for InfoEvaluator
impl Unpin for InfoEvaluator
impl UnsafeUnpin for InfoEvaluator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more