Trait sp1_core::air::MachineAir
source · pub trait MachineAir<F: Field>:
BaseAir<F>
+ 'static
+ Send
+ Sync {
type Record: MachineRecord;
type Program: MachineProgram<F>;
// Required methods
fn name(&self) -> String;
fn generate_trace(
&self,
input: &Self::Record,
output: &mut Self::Record,
) -> RowMajorMatrix<F>;
fn included(&self, shard: &Self::Record) -> bool;
// Provided methods
fn generate_dependencies(
&self,
input: &Self::Record,
output: &mut Self::Record,
) { ... }
fn preprocessed_width(&self) -> usize { ... }
fn generate_preprocessed_trace(
&self,
_program: &Self::Program,
) -> Option<RowMajorMatrix<F>> { ... }
}Expand description
An AIR that is part of a multi table AIR arithmetization.
Required Associated Types§
sourcetype Record: MachineRecord
type Record: MachineRecord
The execution record containing events for producing the air trace.
type Program: MachineProgram<F>
Required Methods§
sourcefn generate_trace(
&self,
input: &Self::Record,
output: &mut Self::Record,
) -> RowMajorMatrix<F>
fn generate_trace( &self, input: &Self::Record, output: &mut Self::Record, ) -> RowMajorMatrix<F>
Generate the trace for a given execution record.
inputis the execution record containing the events to be written to the trace.outputis the execution record containing events that theMachineAircan add to the record such as byte lookup requests.
Provided Methods§
sourcefn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record)
fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record)
Generate the dependencies for a given execution record.
sourcefn preprocessed_width(&self) -> usize
fn preprocessed_width(&self) -> usize
The width of the preprocessed trace.
sourcefn generate_preprocessed_trace(
&self,
_program: &Self::Program,
) -> Option<RowMajorMatrix<F>>
fn generate_preprocessed_trace( &self, _program: &Self::Program, ) -> Option<RowMajorMatrix<F>>
Generate the preprocessed trace given a specific program.