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, alpha: SC::Challenge) -> Self
Sourcepub fn quotient_values(
&self,
constraints: &[&SymbolicExpressionDag<Val<SC>>],
extended_views: Vec<RapView<impl Matrix<Val<SC>>, Val<SC>, SC::Challenge>>,
quotient_degrees: &[u8],
) -> QuotientData<SC>
pub fn quotient_values( &self, constraints: &[&SymbolicExpressionDag<Val<SC>>], extended_views: Vec<RapView<impl Matrix<Val<SC>>, Val<SC>, SC::Challenge>>, quotient_degrees: &[u8], ) -> QuotientData<SC>
Constructs quotient domains and computes the evaluation of the quotient polynomials on the quotient domains of each RAP.
§Assumptions
constraints
,extended_views
,quotient_degrees
have equal lengths and the length equals number of RAPs.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.extended_views
is a view of the trace polynomials evaluated on the quotient domain, with rows bit reversed to account for the fact that the quotient domain is different for each RAP.
pub fn commit(&self, data: QuotientData<SC>) -> (Com<SC>, PcsData<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,
impl<'pcs, SC> Send for QuotientCommitter<'pcs, SC>
impl<'pcs, SC> Sync for QuotientCommitter<'pcs, SC>
impl<'pcs, SC> Unpin for QuotientCommitter<'pcs, SC>
impl<'pcs, SC> UnwindSafe for QuotientCommitter<'pcs, SC>where
<SC as StarkGenericConfig>::Challenge: UnwindSafe,
<SC as StarkGenericConfig>::Pcs: RefUnwindSafe,
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