pub trait TraceFiller<F>: Send + Sync {
// Provided methods
fn fill_trace(
&self,
mem_helper: &MemoryAuxColsFactory<'_, F>,
trace: &mut RowMajorMatrix<F>,
rows_used: usize,
)
where F: Send + Sync + Clone { ... }
fn fill_trace_row(
&self,
_mem_helper: &MemoryAuxColsFactory<'_, F>,
_row_slice: &mut [F],
) { ... }
fn fill_dummy_trace_row(&self, _row_slice: &mut [F]) { ... }
fn generate_public_values(&self) -> Vec<F> { ... }
}
Expand description
Helper trait for CPU tracegen.
Provided Methods§
Sourcefn fill_trace(
&self,
mem_helper: &MemoryAuxColsFactory<'_, F>,
trace: &mut RowMajorMatrix<F>,
rows_used: usize,
)
fn fill_trace( &self, mem_helper: &MemoryAuxColsFactory<'_, F>, trace: &mut RowMajorMatrix<F>, rows_used: usize, )
Populates trace
. This function will always be called after
[TraceExecutor::execute
], so the trace
should already contain the records necessary to
fill in the rest of it.
Sourcefn fill_trace_row(
&self,
_mem_helper: &MemoryAuxColsFactory<'_, F>,
_row_slice: &mut [F],
)
fn fill_trace_row( &self, _mem_helper: &MemoryAuxColsFactory<'_, F>, _row_slice: &mut [F], )
Populates row_slice
. This function will always be called after
[TraceExecutor::execute
], so the row_slice
should already contain context necessary to
fill in the rest of the row. This function will be called for each row in the trace which
is being used, and for all other rows in the trace see fill_dummy_trace_row
.
The provided row_slice
will have length equal to the width of the AIR.
Sourcefn fill_dummy_trace_row(&self, _row_slice: &mut [F])
fn fill_dummy_trace_row(&self, _row_slice: &mut [F])
Populates row_slice
. This function will be called on dummy rows.
By default the trace is padded with empty (all 0) rows to make the height a power of 2.
The provided row_slice
will have length equal to the width of the AIR.
Sourcefn generate_public_values(&self) -> Vec<F>
fn generate_public_values(&self) -> Vec<F>
Returns a list of public values to publish.