Type Alias ConstantExpr

Source
pub type ConstantExpr<F, ChallengeTerm> = Operations<ConstantExprInner<F, ChallengeTerm>>;

Aliased Type§

pub enum ConstantExpr<F, ChallengeTerm> {
    Atom(ConstantExprInner<F, ChallengeTerm>),
    Pow(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, u64),
    Add(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>),
    Mul(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>),
    Sub(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>),
    Double(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>),
    Square(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>),
    Cache(CacheId, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>),
    IfFeature(FeatureFlag, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>),
}

Variants§

§

Atom(ConstantExprInner<F, ChallengeTerm>)

§

Pow(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, u64)

§

Add(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>)

§

Mul(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>)

§

Sub(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>)

§

Double(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>)

§

Square(Box<Operations<ConstantExprInner<F, ChallengeTerm>>>)

§

Cache(CacheId, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>)

§

IfFeature(FeatureFlag, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>, Box<Operations<ConstantExprInner<F, ChallengeTerm>>>)

Implementations§

Source§

impl<F: Field, ChallengeTerm: Copy> ConstantExpr<F, ChallengeTerm>

Source

pub fn value( &self, c: &Constants<F>, chals: &dyn Index<ChallengeTerm, Output = F>, ) -> F

Evaluate the given constant expression to a field element.

Trait Implementations§

Source§

impl<'a, F, ChallengeTerm: AlphaChallengeTerm<'a>> From<ChallengeTerm> for ConstantExpr<F, ChallengeTerm>

Source§

fn from(x: ChallengeTerm) -> Self

Converts to this type from the input type.
Source§

impl<F, ChallengeTerm> From<ConstantTerm<F>> for ConstantExpr<F, ChallengeTerm>

Source§

fn from(x: ConstantTerm<F>) -> Self

Converts to this type from the input type.
Source§

impl<F: Field, ChallengeTerm> From<u64> for ConstantExpr<F, ChallengeTerm>

Source§

fn from(x: u64) -> Self

Converts to this type from the input type.