Trait SymbolicEvaluator

Source
pub trait SymbolicEvaluator<F, E>
where F: Field, E: Add<E, Output = E> + Sub<E, Output = E> + Mul<E, Output = E> + Neg<Output = E>,
{ // Required methods fn eval_const(&self, c: F) -> E; fn eval_var(&self, symbolic_var: SymbolicVariable<F>) -> E; fn eval_is_first_row(&self) -> E; fn eval_is_last_row(&self) -> E; fn eval_is_transition(&self) -> E; // Provided methods fn eval_expr(&self, symbolic_expr: &SymbolicExpression<F>) -> E { ... } fn eval_nodes(&self, nodes: &[SymbolicExpressionNode<F>]) -> Vec<E> where E: Clone { ... } }

Required Methods§

Source

fn eval_const(&self, c: F) -> E

Source

fn eval_var(&self, symbolic_var: SymbolicVariable<F>) -> E

Source

fn eval_is_first_row(&self) -> E

Source

fn eval_is_last_row(&self) -> E

Source

fn eval_is_transition(&self) -> E

Provided Methods§

Source

fn eval_expr(&self, symbolic_expr: &SymbolicExpression<F>) -> E

Source

fn eval_nodes(&self, nodes: &[SymbolicExpressionNode<F>]) -> Vec<E>
where E: Clone,

Assumes that nodes are in topological order (if B references A, then B comes after A). Simple serial evaluation in order.

Implementors§

Source§

impl<F, EF, PubVar, Var, Expr> SymbolicEvaluator<F, Expr> for GenericVerifierConstraintFolder<'_, F, EF, PubVar, Var, Expr>
where F: Field, EF: ExtensionField<F>, Expr: FieldAlgebra + From<F> + Send + Sync, Var: Into<Expr> + Copy + Send + Sync, PubVar: Into<Expr> + Copy + Send + Sync,