pub struct CpuDevice<'a, SC> { /* private fields */ }
Implementations§
Trait Implementations§
Source§impl<SC: StarkGenericConfig> OpeningProver<CpuBackend<SC>> for CpuDevice<'_, SC>
impl<SC: StarkGenericConfig> OpeningProver<CpuBackend<SC>> for CpuDevice<'_, SC>
Source§fn open(
&self,
challenger: &mut SC::Challenger,
preprocessed: Vec<&PcsData<SC>>,
main: Vec<&PcsData<SC>>,
after_phase: Vec<PcsData<SC>>,
quotient_data: PcsData<SC>,
quotient_degrees: &[u8],
) -> OpeningProof<PcsProof<SC>, SC::Challenge>
fn open( &self, challenger: &mut SC::Challenger, preprocessed: Vec<&PcsData<SC>>, main: Vec<&PcsData<SC>>, after_phase: Vec<PcsData<SC>>, quotient_data: PcsData<SC>, quotient_degrees: &[u8], ) -> OpeningProof<PcsProof<SC>, SC::Challenge>
Opening proof for multiple RAP matrices, where Read more
Source§impl<SC: StarkGenericConfig> QuotientCommitter<CpuBackend<SC>> for CpuDevice<'_, SC>
impl<SC: StarkGenericConfig> QuotientCommitter<CpuBackend<SC>> for CpuDevice<'_, SC>
Source§fn eval_and_commit_quotient(
&self,
challenger: &mut SC::Challenger,
pk_views: &[DeviceStarkProvingKey<'_, CpuBackend<SC>>],
public_values: &[Vec<Val<SC>>],
cached_views_per_air: &[Vec<SingleCommitPreimage<&Arc<RowMajorMatrix<Val<SC>>>, &PcsData<SC>>>],
common_main_pcs_data: &PcsData<SC>,
prover_data_after: &ProverDataAfterRapPhases<CpuBackend<SC>>,
) -> (Com<SC>, PcsData<SC>)
fn eval_and_commit_quotient( &self, challenger: &mut SC::Challenger, pk_views: &[DeviceStarkProvingKey<'_, CpuBackend<SC>>], public_values: &[Vec<Val<SC>>], cached_views_per_air: &[Vec<SingleCommitPreimage<&Arc<RowMajorMatrix<Val<SC>>>, &PcsData<SC>>>], common_main_pcs_data: &PcsData<SC>, prover_data_after: &ProverDataAfterRapPhases<CpuBackend<SC>>, ) -> (Com<SC>, PcsData<SC>)
Given a view of the PCS data from all phases of proving,
first get the trace polynomials evaluated on the quotient domains.
Then compute the quotient polynomial evaluated on the quotient domain
and commit to it. Read more
Source§impl<SC: StarkGenericConfig> RapPartialProver<CpuBackend<SC>> for CpuDevice<'_, SC>
impl<SC: StarkGenericConfig> RapPartialProver<CpuBackend<SC>> for CpuDevice<'_, SC>
Source§fn partially_prove<'a>(
&self,
challenger: &mut SC::Challenger,
mpk: &DeviceMultiStarkProvingKey<'a, CpuBackend<SC>>,
trace_views: Vec<PairView<&'a Arc<RowMajorMatrix<Val<SC>>>, Val<SC>>>,
) -> (Option<RapPhaseSeqPartialProof<SC>>, ProverDataAfterRapPhases<CpuBackend<SC>>)
fn partially_prove<'a>( &self, challenger: &mut SC::Challenger, mpk: &DeviceMultiStarkProvingKey<'a, CpuBackend<SC>>, trace_views: Vec<PairView<&'a Arc<RowMajorMatrix<Val<SC>>>, Val<SC>>>, ) -> (Option<RapPhaseSeqPartialProof<SC>>, ProverDataAfterRapPhases<CpuBackend<SC>>)
The
trace_views
are the views of the respective trace matrices, evaluated on the trace domain.
Currently this function does not provide a view of any already committed data associated
with the trace views, although that data is available.Source§impl<SC: StarkGenericConfig> TraceCommitter<CpuBackend<SC>> for CpuDevice<'_, SC>
impl<SC: StarkGenericConfig> TraceCommitter<CpuBackend<SC>> for CpuDevice<'_, SC>
impl<'a, SC> Copy for CpuDevice<'a, SC>
impl<SC: StarkGenericConfig> ProverDevice<CpuBackend<SC>> for CpuDevice<'_, SC>
Auto Trait Implementations§
impl<'a, SC> Freeze for CpuDevice<'a, SC>
impl<'a, SC> RefUnwindSafe for CpuDevice<'a, SC>where
SC: RefUnwindSafe,
impl<'a, SC> Send for CpuDevice<'a, SC>where
SC: Sync,
impl<'a, SC> Sync for CpuDevice<'a, SC>where
SC: Sync,
impl<'a, SC> Unpin for CpuDevice<'a, SC>
impl<'a, SC> UnwindSafe for CpuDevice<'a, SC>where
SC: 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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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