Trait VmAdapterAir

Source
pub trait VmAdapterAir<AB: AirBuilder>: BaseAir<AB::F> {
    type Interface: VmAdapterInterface<AB::Expr>;

    // Required methods
    fn eval(
        &self,
        builder: &mut AB,
        local: &[AB::Var],
        interface: AdapterAirContext<AB::Expr, Self::Interface>,
    );
    fn get_from_pc(&self, local: &[AB::Var]) -> AB::Var;
}

Required Associated Types§

Required Methods§

Source

fn eval( &self, builder: &mut AB, local: &[AB::Var], interface: AdapterAirContext<AB::Expr, Self::Interface>, )

Air constraints owned by the adapter. The interface is given as abstract expressions so it can be directly used in other AIR constraints.

Adapters should document the max constraint degree as a function of the constraint degrees of reads, writes, instruction.

Source

fn get_from_pc(&self, local: &[AB::Var]) -> AB::Var

Return the from_pc expression.

Implementors§

Source§

impl<AB: InteractionBuilder> VmAdapterAir<AB> for TestAdapterAir

Source§

impl<AB: InteractionBuilder, const R: usize, const W: usize> VmAdapterAir<AB> for NativeAdapterAir<R, W>

impl<AB: InteractionBuilder, const NUM_CELLS: usize> VmAdapterAir<AB> for NativeLoadStoreAdapterAir<NUM_CELLS>

impl<AB: InteractionBuilder, const READ_SIZE: usize, const WRITE_SIZE: usize> VmAdapterAir<AB> for ConvertAdapterAir<READ_SIZE, WRITE_SIZE>

impl<AB: InteractionBuilder, const BLOCKS_PER_READ1: usize, const BLOCKS_PER_READ2: usize, const BLOCKS_PER_WRITE: usize, const READ_SIZE: usize, const WRITE_SIZE: usize> VmAdapterAir<AB> for Rv32VecHeapTwoReadsAdapterAir<BLOCKS_PER_READ1, BLOCKS_PER_READ2, BLOCKS_PER_WRITE, READ_SIZE, WRITE_SIZE>

impl<AB: InteractionBuilder, const NUM_READS: usize, const BLOCKS_PER_READ: usize, const BLOCKS_PER_WRITE: usize, const READ_SIZE: usize, const WRITE_SIZE: usize> VmAdapterAir<AB> for Rv32VecHeapAdapterAir<NUM_READS, BLOCKS_PER_READ, BLOCKS_PER_WRITE, READ_SIZE, WRITE_SIZE>

impl<AB: InteractionBuilder, const NUM_READS: usize, const BLOCKS_PER_READ: usize, const BLOCK_SIZE: usize, const TOTAL_READ_SIZE: usize> VmAdapterAir<AB> for Rv32IsEqualModAdapterAir<NUM_READS, BLOCKS_PER_READ, BLOCK_SIZE, TOTAL_READ_SIZE>

impl<AB: InteractionBuilder, const NUM_READS: usize, const READ_SIZE: usize> VmAdapterAir<AB> for Rv32HeapBranchAdapterAir<NUM_READS, READ_SIZE>

impl<AB: InteractionBuilder, const NUM_READS: usize, const READ_SIZE: usize, const WRITE_SIZE: usize> VmAdapterAir<AB> for Rv32HeapAdapterAir<NUM_READS, READ_SIZE, WRITE_SIZE>