Trait Air

Source
pub trait Air<AB: AirBuilder>: BaseAir<AB::F> {
    // Required method
    fn eval(&self, builder: &mut AB);
}
Expand description

An AIR that works with a particular AirBuilder.

Required Methods§

Source

fn eval(&self, builder: &mut AB)

Implementors§

impl<AB, A, M> Air<AB> for VmAirWrapper<A, M>
where AB: AirBuilder, A: VmAdapterAir<AB>, M: VmCoreAir<AB, A::Interface>,

impl<AB: InteractionBuilder, const SBOX_REGISTERS: usize> Air<AB> for Poseidon2PeripheryAir<AB::F, SBOX_REGISTERS>

impl<const BLOCK_SIZE: usize, AB: InteractionBuilder> Air<AB> for MemoryDummyAir<BLOCK_SIZE>

impl<const CHUNK: usize, AB: InteractionBuilder + AirBuilderWithPublicValues> Air<AB> for MemoryMerkleAir<CHUNK>

impl<AB, const M: usize> Air<AB> for XorLookupAir<M>

impl<AB: InteractionBuilder + PairBuilder, const NUM_BITS: usize> Air<AB> for BitwiseOperationLookupAir<NUM_BITS>

impl<AB: InteractionBuilder> Air<AB> for FieldExpr

impl<AB: InteractionBuilder, const SBOX_REGISTERS: usize> Air<AB> for NativePoseidon2Air<AB::F, SBOX_REGISTERS>

impl<AB: AirBuilder, const SBOX_REGISTERS: usize> Air<AB> for Poseidon2SubAir<AB::F, SBOX_REGISTERS>

impl<AB: AirBuilder> Air<AB> for KeccakAir

impl<AB: AirBuilder, LinearLayers: GenericPoseidon2LinearLayers<AB::Expr, WIDTH>, const WIDTH: usize, const SBOX_DEGREE: u64, const SBOX_REGISTERS: usize, const HALF_FULL_ROUNDS: usize, const PARTIAL_ROUNDS: usize> Air<AB> for Poseidon2Air<AB::F, LinearLayers, WIDTH, SBOX_DEGREE, SBOX_REGISTERS, HALF_FULL_ROUNDS, PARTIAL_ROUNDS>

impl<AB: AirBuilder, LinearLayers: GenericPoseidon2LinearLayers<AB::Expr, WIDTH>, const WIDTH: usize, const SBOX_DEGREE: u64, const SBOX_REGISTERS: usize, const HALF_FULL_ROUNDS: usize, const PARTIAL_ROUNDS: usize, const VECTOR_LEN: usize> Air<AB> for VectorizedPoseidon2Air<AB::F, LinearLayers, WIDTH, SBOX_DEGREE, SBOX_REGISTERS, HALF_FULL_ROUNDS, PARTIAL_ROUNDS, VECTOR_LEN>