pub struct SyntheticAir { /* private fields */ }Expand description
A parametric AIR that matches the prover-observable shape of a captured AIR record. See module docs for the construction trick.
Implementations§
Source§impl SyntheticAir
impl SyntheticAir
pub fn from_shape(s: &SyntheticShape) -> Self
pub fn width(&self) -> usize
pub fn num_constraints(&self) -> usize
pub fn num_interactions(&self) -> usize
Sourcepub fn generate_trace<F: Field>(&self, log_height: usize) -> RowMajorMatrix<F>
pub fn generate_trace<F: Field>(&self, log_height: usize) -> RowMajorMatrix<F>
Generate an all-zeros trace at the given log_height. Width matches
self.width(). Trace is trivially valid (every constraint and
interaction count multiplies by column 0 = 0).
Trait Implementations§
Source§impl<AB: InteractionBuilder> Air<AB> for SyntheticAir
impl<AB: InteractionBuilder> Air<AB> for SyntheticAir
Source§impl<F: Field> BaseAir<F> for SyntheticAir
impl<F: Field> BaseAir<F> for SyntheticAir
Source§impl<F: Field> BaseAirWithPublicValues<F> for SyntheticAir
impl<F: Field> BaseAirWithPublicValues<F> for SyntheticAir
§fn num_public_values(&self) -> usize
fn num_public_values(&self) -> usize
Return the number of expected public values.
Source§impl Clone for SyntheticAir
impl Clone for SyntheticAir
Source§fn clone(&self) -> SyntheticAir
fn clone(&self) -> SyntheticAir
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SyntheticAir
impl Debug for SyntheticAir
Source§impl<F: Field> PartitionedBaseAir<F> for SyntheticAir
impl<F: Field> PartitionedBaseAir<F> for SyntheticAir
Source§fn cached_main_widths(&self) -> Vec<usize>
fn cached_main_widths(&self) -> Vec<usize>
By default, an AIR has no cached main trace.
Source§fn common_main_width(&self) -> usize
fn common_main_width(&self) -> usize
By default, an AIR has only one private main trace.
Auto Trait Implementations§
impl Freeze for SyntheticAir
impl RefUnwindSafe for SyntheticAir
impl Send for SyntheticAir
impl Sync for SyntheticAir
impl Unpin for SyntheticAir
impl UnsafeUnpin for SyntheticAir
impl UnwindSafe for SyntheticAir
Blanket Implementations§
Source§impl<SC, T> AnyAir<SC> for Twhere
SC: StarkProtocolConfig,
T: Air<SymbolicRapBuilder<<SC as StarkProtocolConfig>::F>> + for<'a> Air<DebugConstraintBuilder<'a, SC>> + BaseAirWithPublicValues<<SC as StarkProtocolConfig>::F> + PartitionedBaseAir<<SC as StarkProtocolConfig>::F> + Send + Sync + 'static,
impl<SC, T> AnyAir<SC> for Twhere
SC: StarkProtocolConfig,
T: Air<SymbolicRapBuilder<<SC as StarkProtocolConfig>::F>> + for<'a> Air<DebugConstraintBuilder<'a, SC>> + BaseAirWithPublicValues<<SC as StarkProtocolConfig>::F> + PartitionedBaseAir<<SC as StarkProtocolConfig>::F> + Send + Sync + 'static,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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