pub enum ExprInner<C, Column> {
Constant(C),
Cell(Variable<Column>),
VanishesOnZeroKnowledgeAndPreviousRows,
UnnormalizedLagrangeBasis(RowOffset),
}
Variants§
Constant(C)
Cell(Variable<Column>)
VanishesOnZeroKnowledgeAndPreviousRows
UnnormalizedLagrangeBasis(RowOffset)
UnnormalizedLagrangeBasis(i) is (x^n - 1) / (x - omega^i)
Trait Implementations§
source§impl<T: Literal, Column: Clone> Literal for ExprInner<T, Column>
impl<T: Literal, Column: Clone> Literal for ExprInner<T, Column>
type F = <T as Literal>::F
fn literal(x: Self::F) -> Self
fn to_literal(self) -> Result<Self::F, Self>
fn to_literal_ref(&self) -> Option<&Self::F>
source§fn as_literal(&self, constants: &Constants<Self::F>) -> Self
fn as_literal(&self, constants: &Constants<Self::F>) -> Self
Obtains the representation of some constants as a literal.
This is useful before converting Kimchi expressions with constants
to folding compatible expressions.
source§impl<C: PartialEq, Column: PartialEq> PartialEq<ExprInner<C, Column>> for ExprInner<C, Column>
impl<C: PartialEq, Column: PartialEq> PartialEq<ExprInner<C, Column>> for ExprInner<C, Column>
impl<C, Column> StructuralPartialEq for ExprInner<C, Column>
Auto Trait Implementations§
impl<C, Column> RefUnwindSafe for ExprInner<C, Column>where C: RefUnwindSafe, Column: RefUnwindSafe,
impl<C, Column> Send for ExprInner<C, Column>where C: Send, Column: Send,
impl<C, Column> Sync for ExprInner<C, Column>where C: Sync, Column: Sync,
impl<C, Column> Unpin for ExprInner<C, Column>where C: Unpin, Column: Unpin,
impl<C, Column> UnwindSafe for ExprInner<C, Column>where C: UnwindSafe, Column: UnwindSafe,
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