openvm_cpu_backend/
backend.rs1use std::marker::PhantomData;
4
5use openvm_stark_backend::{prover::ProverBackend, StarkProtocolConfig};
6use p3_matrix::dense::RowMajorMatrix;
7
8use crate::pcs_data::CpuStackedPcsData;
9
10#[derive(Clone, Copy)]
15pub struct CpuBackend<SC: StarkProtocolConfig>(PhantomData<SC>);
16
17impl<SC: StarkProtocolConfig> CpuBackend<SC> {
18 pub fn new() -> Self {
19 Self(PhantomData)
20 }
21}
22
23impl<SC: StarkProtocolConfig> Default for CpuBackend<SC> {
24 fn default() -> Self {
25 Self::new()
26 }
27}
28
29impl<SC: StarkProtocolConfig> ProverBackend for CpuBackend<SC> {
30 const CHALLENGE_EXT_DEGREE: u8 = SC::D_EF as u8;
31
32 type Val = SC::F;
33 type Challenge = SC::EF;
34 type Commitment = SC::Digest;
35 type Matrix = RowMajorMatrix<SC::F>;
36 type OtherAirData = ();
37 type PcsData = CpuStackedPcsData<SC::F, SC::Digest>;
38}