pub struct QuotientCommitter<'pcs, SC: StarkGenericConfig> { /* private fields */ }
Implementations§
Source§impl<'pcs, SC: StarkGenericConfig> QuotientCommitter<'pcs, SC>
impl<'pcs, SC: StarkGenericConfig> QuotientCommitter<'pcs, SC>
pub fn new( pcs: &'pcs SC::Pcs, challenges: &[Vec<SC::Challenge>], alpha: SC::Challenge, ) -> Self
Sourcepub fn quotient_values<'a>(
&self,
raps: Vec<impl AsRef<dyn AnyRap<SC>>>,
qvks: &[QuotientVkData<'a, SC>],
traces: &[SingleRapCommittedTraceView<'a, SC>],
public_values: &'a [Vec<Val<SC>>],
) -> QuotientData<SC>
pub fn quotient_values<'a>( &self, raps: Vec<impl AsRef<dyn AnyRap<SC>>>, qvks: &[QuotientVkData<'a, SC>], traces: &[SingleRapCommittedTraceView<'a, SC>], public_values: &'a [Vec<Val<SC>>], ) -> QuotientData<SC>
Constructs quotient domains and computes the evaluation of the quotient polynomials on the quotient domains of each RAP.
§Assumptions
raps
,traces
,quotient_degrees
are all the same length and in the same order.quotient_degrees
is the factor to multiply the trace degree by to get the degree of the quotient polynomial. This should be determined from the constraint degree of the RAP.
pub fn commit(&self, data: QuotientData<SC>) -> ProverQuotientData<SC>
Auto Trait Implementations§
impl<'pcs, SC> Freeze for QuotientCommitter<'pcs, SC>
impl<'pcs, SC> RefUnwindSafe for QuotientCommitter<'pcs, SC>where
<SC as StarkGenericConfig>::Challenge: RefUnwindSafe,
<SC as StarkGenericConfig>::Pcs: RefUnwindSafe,
<<SC as StarkGenericConfig>::Challenge as ExtensionField<<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val>>::ExtensionPacking: RefUnwindSafe,
impl<'pcs, SC> Send for QuotientCommitter<'pcs, SC>
impl<'pcs, SC> Sync for QuotientCommitter<'pcs, SC>
impl<'pcs, SC> Unpin for QuotientCommitter<'pcs, SC>where
<SC as StarkGenericConfig>::Challenge: Unpin,
<<SC as StarkGenericConfig>::Challenge as ExtensionField<<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val>>::ExtensionPacking: Unpin,
impl<'pcs, SC> UnwindSafe for QuotientCommitter<'pcs, SC>where
<SC as StarkGenericConfig>::Challenge: UnwindSafe,
<SC as StarkGenericConfig>::Pcs: RefUnwindSafe,
<<SC as StarkGenericConfig>::Challenge as ExtensionField<<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val>>::ExtensionPacking: 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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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