Skip to main content

PointEvaluator

Struct PointEvaluator 

Source
pub struct PointEvaluator<'a> {
    pub mask: TreeVec<ColumnVec<&'a Vec<SecureField>>>,
    pub evaluation_accumulator: &'a mut PointEvaluationAccumulator,
    pub col_index: Vec<usize>,
    pub denom_inverse: SecureField,
    pub logup: LogupAtRow<Self>,
}
Expand description

Evaluates expressions at a point out of domain.

Fields§

§mask: TreeVec<ColumnVec<&'a Vec<SecureField>>>§evaluation_accumulator: &'a mut PointEvaluationAccumulator§col_index: Vec<usize>§denom_inverse: SecureField§logup: LogupAtRow<Self>

Implementations§

Source§

impl<'a> PointEvaluator<'a>

Source

pub fn new( mask: TreeVec<ColumnVec<&'a Vec<SecureField>>>, evaluation_accumulator: &'a mut PointEvaluationAccumulator, denom_inverse: SecureField, log_size: u32, claimed_sum: SecureField, ) -> Self

Trait Implementations§

Source§

impl EvalAtRow for PointEvaluator<'_>

Source§

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)

Finalizes the row’s logup in the default way. Currently, this means no batching.

Source§

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 = QM31

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 = QM31

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]

Returns the mask values of the given offsets for the next column in the interaction.
Source§

fn add_constraint<G>(&mut self, constraint: G)
where Self::EF: Mul<G, Output = Self::EF>,

Adds a constraint to the component.
Source§

fn combine_ef(values: [Self::F; 4]) -> Self::EF

Combines 4 base field values into a single extension field value.
Source§

fn write_logup_frac(&mut self, fraction: Fraction<Self::EF, Self::EF>)

Source§

fn next_trace_mask(&mut self) -> Self::F

Returns the next mask value for the first interaction at offset 0.
Source§

fn get_preprocessed_column(&mut self, _column: PreProcessedColumnId) -> Self::F

Source§

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

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

Adds an intermediate value in the extension field to the component and returns its value. Does nothing by default.
Source§

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.

Auto Trait Implementations§

§

impl<'a> !UnwindSafe for PointEvaluator<'a>

§

impl<'a> Freeze for PointEvaluator<'a>

§

impl<'a> RefUnwindSafe for PointEvaluator<'a>

§

impl<'a> Send for PointEvaluator<'a>

§

impl<'a> Sync for PointEvaluator<'a>

§

impl<'a> Unpin for PointEvaluator<'a>

§

impl<'a> UnsafeUnpin for PointEvaluator<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more