pub enum SymbolicMultilinearPolyVariant<F: TowerField> {
Committed,
Transparent(TransparentPolyOracle<F>),
Structured(ArithCircuit<F>),
Repeating {
id: OracleId,
},
Projected {
id: OracleId,
values: Vec<F>,
variant: ProjectionVariant,
},
Shifted {
id: OracleId,
shift_offset: usize,
block_size: usize,
shift_variant: ShiftVariant,
},
Packed {
id: OracleId,
log_degree: usize,
},
LinearCombination {
offset: F,
inner: Vec<(OracleId, F)>,
},
ZeroPadded {
id: OracleId,
n_pad_vars: usize,
nonzero_index: usize,
start_index: usize,
},
Composite {
inner: Vec<OracleId>,
circuit: ArithCircuit<F>,
},
}
Variants§
Committed
Transparent(TransparentPolyOracle<F>)
Structured(ArithCircuit<F>)
A structured virtual polynomial is one that can be evaluated succinctly by a verifier.
These are referred to as “MLE-structured” tables in Lasso. The evaluation algorithm is expressed as an arithmetic circuit, of polynomial size in the number of variables.
Repeating
Projected
Shifted
Packed
Fields
LinearCombination
ZeroPadded
Composite
Trait Implementations§
Source§impl<F: Clone + TowerField> Clone for SymbolicMultilinearPolyVariant<F>
impl<F: Clone + TowerField> Clone for SymbolicMultilinearPolyVariant<F>
Source§fn clone(&self) -> SymbolicMultilinearPolyVariant<F>
fn clone(&self) -> SymbolicMultilinearPolyVariant<F>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<F: Debug + TowerField> Debug for SymbolicMultilinearPolyVariant<F>
impl<F: Debug + TowerField> Debug for SymbolicMultilinearPolyVariant<F>
Source§impl DeserializeBytes for SymbolicMultilinearPolyVariant<BinaryField128b>
impl DeserializeBytes for SymbolicMultilinearPolyVariant<BinaryField128b>
fn deserialize(
buf: impl Buf,
mode: SerializationMode,
) -> Result<Self, SerializationError>where
Self: Sized,
Source§impl<F: PartialEq + TowerField> PartialEq for SymbolicMultilinearPolyVariant<F>
impl<F: PartialEq + TowerField> PartialEq for SymbolicMultilinearPolyVariant<F>
Source§fn eq(&self, other: &SymbolicMultilinearPolyVariant<F>) -> bool
fn eq(&self, other: &SymbolicMultilinearPolyVariant<F>) -> bool
Tests for
self
and other
values to be equal, and is used by ==
.Source§impl<F: TowerField + SerializeBytes> SerializeBytes for SymbolicMultilinearPolyVariant<F>
impl<F: TowerField + SerializeBytes> SerializeBytes for SymbolicMultilinearPolyVariant<F>
fn serialize( &self, write_buf: impl BufMut, mode: SerializationMode, ) -> Result<(), SerializationError>
impl<F: Eq + TowerField> Eq for SymbolicMultilinearPolyVariant<F>
impl<F: TowerField> StructuralPartialEq for SymbolicMultilinearPolyVariant<F>
Auto Trait Implementations§
impl<F> Freeze for SymbolicMultilinearPolyVariant<F>
impl<F> !RefUnwindSafe for SymbolicMultilinearPolyVariant<F>
impl<F> Send for SymbolicMultilinearPolyVariant<F>
impl<F> Sync for SymbolicMultilinearPolyVariant<F>
impl<F> Unpin for SymbolicMultilinearPolyVariant<F>
impl<F> !UnwindSafe for SymbolicMultilinearPolyVariant<F>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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