pub enum RiscvAir<F>where
F: PrimeField32,{
Show 122 variants
Program(ProgramChip),
InstructionDecode(InstructionDecodeChip),
InstructionFetch(InstructionFetchChip),
Add(AddChip<SupervisorMode>),
AddUser(AddChip<UserMode>),
Addw(AddwChip<SupervisorMode>),
AddwUser(AddwChip<UserMode>),
Addi(AddiChip<SupervisorMode>),
AddiUser(AddiChip<UserMode>),
Sub(SubChip<SupervisorMode>),
SubUser(SubChip<UserMode>),
Subw(SubwChip<SupervisorMode>),
SubwUser(SubwChip<UserMode>),
Bitwise(BitwiseChip<SupervisorMode>),
BitwiseUser(BitwiseChip<UserMode>),
Mul(MulChip<SupervisorMode>),
MulUser(MulChip<UserMode>),
DivRem(DivRemChip<SupervisorMode>),
DivRemUser(DivRemChip<UserMode>),
Lt(LtChip<SupervisorMode>),
LtUser(LtChip<UserMode>),
AluX0(AluX0Chip<SupervisorMode>),
AluX0User(AluX0Chip<UserMode>),
ShiftLeft(ShiftLeftChip<SupervisorMode>),
ShiftLeftUser(ShiftLeftChip<UserMode>),
ShiftRight(ShiftRightChip<SupervisorMode>),
ShiftRightUser(ShiftRightChip<UserMode>),
LoadByte(LoadByteChip<SupervisorMode>),
LoadByteUser(LoadByteChip<UserMode>),
LoadHalf(LoadHalfChip<SupervisorMode>),
LoadHalfUser(LoadHalfChip<UserMode>),
LoadWord(LoadWordChip<SupervisorMode>),
LoadWordUser(LoadWordChip<UserMode>),
LoadDouble(LoadDoubleChip<SupervisorMode>),
LoadDoubleUser(LoadDoubleChip<UserMode>),
LoadX0(LoadX0Chip<SupervisorMode>),
LoadX0User(LoadX0Chip<UserMode>),
StoreByte(StoreByteChip<SupervisorMode>),
StoreByteUser(StoreByteChip<UserMode>),
StoreHalf(StoreHalfChip<SupervisorMode>),
StoreHalfUser(StoreHalfChip<UserMode>),
StoreWord(StoreWordChip<SupervisorMode>),
StoreWordUser(StoreWordChip<UserMode>),
StoreDouble(StoreDoubleChip<SupervisorMode>),
StoreDoubleUser(StoreDoubleChip<UserMode>),
UType(UTypeChip<SupervisorMode>),
UTypeUser(UTypeChip<UserMode>),
Branch(BranchChip<SupervisorMode>),
BranchUser(BranchChip<UserMode>),
Jal(JalChip<SupervisorMode>),
JalUser(JalChip<UserMode>),
Jalr(JalrChip<SupervisorMode>),
JalrUser(JalrChip<UserMode>),
SyscallInstrs(SyscallInstrsChip<SupervisorMode>),
SyscallInstrsUser(SyscallInstrsChip<UserMode>),
TrapExec(TrapExecChip),
TrapMem(TrapMemChip),
ByteLookup(ByteChip<F>),
RangeLookup(RangeChip<F>),
MemoryGlobalInit(MemoryGlobalChip),
MemoryGlobalFinal(MemoryGlobalChip),
PageProtGlobalInit(PageProtGlobalChip),
PageProtGlobalFinal(PageProtGlobalChip),
MemoryLocal(MemoryLocalChip),
MemoryBump(MemoryBumpChip),
PageProt(PageProtChip),
PageProtLocal(PageProtLocalChip),
StateBump(StateBumpChip),
SyscallCore(SyscallChip<SupervisorMode>),
SyscallCoreUser(SyscallChip<UserMode>),
SyscallPrecompile(SyscallChip<SupervisorMode>),
SyscallPrecompileUser(SyscallChip<UserMode>),
Global(GlobalChip),
Sha256Extend(ShaExtendChip),
Sha256ExtendControl(ShaExtendControlChip<SupervisorMode>),
Sha256ExtendControlUser(ShaExtendControlChip<UserMode>),
Sha256Compress(ShaCompressChip),
Sha256CompressControl(ShaCompressControlChip<SupervisorMode>),
Sha256CompressControlUser(ShaCompressControlChip<UserMode>),
Ed25519Add(EdAddAssignChip<EdwardsCurve<Ed25519Parameters>, SupervisorMode>),
Ed25519AddUser(EdAddAssignChip<EdwardsCurve<Ed25519Parameters>, UserMode>),
Ed25519Decompress(EdDecompressChip<Ed25519Parameters, SupervisorMode>),
Ed25519DecompressUser(EdDecompressChip<Ed25519Parameters, UserMode>),
Secp256k1Add(WeierstrassAddAssignChip<SwCurve<Secp256k1Parameters>, SupervisorMode>),
Secp256k1AddUser(WeierstrassAddAssignChip<SwCurve<Secp256k1Parameters>, UserMode>),
Secp256k1Double(WeierstrassDoubleAssignChip<SwCurve<Secp256k1Parameters>, SupervisorMode>),
Secp256k1DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Secp256k1Parameters>, UserMode>),
Secp256r1Add(WeierstrassAddAssignChip<SwCurve<Secp256r1Parameters>, SupervisorMode>),
Secp256r1AddUser(WeierstrassAddAssignChip<SwCurve<Secp256r1Parameters>, UserMode>),
Secp256r1Double(WeierstrassDoubleAssignChip<SwCurve<Secp256r1Parameters>, SupervisorMode>),
Secp256r1DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Secp256r1Parameters>, UserMode>),
KeccakP(KeccakPermuteChip),
KeccakPControl(KeccakPermuteControlChip<SupervisorMode>),
KeccakPControlUser(KeccakPermuteControlChip<UserMode>),
Bn254Add(WeierstrassAddAssignChip<SwCurve<Bn254Parameters>, SupervisorMode>),
Bn254AddUser(WeierstrassAddAssignChip<SwCurve<Bn254Parameters>, UserMode>),
Bn254Double(WeierstrassDoubleAssignChip<SwCurve<Bn254Parameters>, SupervisorMode>),
Bn254DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Bn254Parameters>, UserMode>),
Bls12381Add(WeierstrassAddAssignChip<SwCurve<Bls12381Parameters>, SupervisorMode>),
Bls12381AddUser(WeierstrassAddAssignChip<SwCurve<Bls12381Parameters>, UserMode>),
Bls12381Double(WeierstrassDoubleAssignChip<SwCurve<Bls12381Parameters>, SupervisorMode>),
Bls12381DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Bls12381Parameters>, UserMode>),
Uint256Mul(Uint256MulChip<SupervisorMode>),
Uint256MulUser(Uint256MulChip<UserMode>),
Uint256Ops(Uint256OpsChip<SupervisorMode>),
Uint256OpsUser(Uint256OpsChip<UserMode>),
Bls12381Fp(FpOpChip<Bls12381BaseField, SupervisorMode>),
Bls12381FpUser(FpOpChip<Bls12381BaseField, UserMode>),
Bls12381Fp2Mul(Fp2MulAssignChip<Bls12381BaseField, SupervisorMode>),
Bls12381Fp2MulUser(Fp2MulAssignChip<Bls12381BaseField, UserMode>),
Bls12381Fp2AddSub(Fp2AddSubAssignChip<Bls12381BaseField, SupervisorMode>),
Bls12381Fp2AddSubUser(Fp2AddSubAssignChip<Bls12381BaseField, UserMode>),
Bn254Fp(FpOpChip<Bn254BaseField, SupervisorMode>),
Bn254FpUser(FpOpChip<Bn254BaseField, UserMode>),
Bn254Fp2Mul(Fp2MulAssignChip<Bn254BaseField, SupervisorMode>),
Bn254Fp2MulUser(Fp2MulAssignChip<Bn254BaseField, UserMode>),
Bn254Fp2AddSub(Fp2AddSubAssignChip<Bn254BaseField, SupervisorMode>),
Bn254Fp2AddSubUser(Fp2AddSubAssignChip<Bn254BaseField, UserMode>),
Mprotect(MProtectChip),
SigReturn(SigReturnChip),
Poseidon2(Poseidon2Chip<SupervisorMode>),
Poseidon2User(Poseidon2Chip<UserMode>),
}Expand description
An AIR for encoding RISC-V execution.
This enum contains all the different AIRs that are used in the Sp1 RISC-V IOP. Each variant is a different AIR that is used to encode a different part of the RISC-V execution, and the different AIR variants have a joint lookup argument.
Variants§
Program(ProgramChip)
An AIR that contains a preprocessed program table and a lookup for the instructions.
InstructionDecode(InstructionDecodeChip)
An AIR for decoding untrusted program instructions.
InstructionFetch(InstructionFetchChip)
An AIR for fetching untrusted program instructions.
Add(AddChip<SupervisorMode>)
An AIR for the RISC-V Add instruction.
AddUser(AddChip<UserMode>)
An AIR for the RISC-V Add instruction (user mode).
Addw(AddwChip<SupervisorMode>)
An AIR for the RISC-V Addw instruction.
AddwUser(AddwChip<UserMode>)
An AIR for the RISC-V Addw instruction (user mode).
Addi(AddiChip<SupervisorMode>)
An AIR for the RISC-V Addi instruction.
AddiUser(AddiChip<UserMode>)
An AIR for the RISC-V Addi instruction (user mode).
Sub(SubChip<SupervisorMode>)
An AIR for the RISC-V Sub instruction.
SubUser(SubChip<UserMode>)
An AIR for the RISC-V Sub instruction (user mode).
Subw(SubwChip<SupervisorMode>)
An AIR for the RISC-V Subw instruction.
SubwUser(SubwChip<UserMode>)
An AIR for the RISC-V Subw instruction (user mode).
Bitwise(BitwiseChip<SupervisorMode>)
An AIR for RISC-V Bitwise instructions.
BitwiseUser(BitwiseChip<UserMode>)
An AIR for RISC-V Bitwise instructions (user mode).
Mul(MulChip<SupervisorMode>)
An AIR for RISC-V Mul instruction.
MulUser(MulChip<UserMode>)
An AIR for RISC-V Mul instruction (User mode).
DivRem(DivRemChip<SupervisorMode>)
An AIR for RISC-V Div and Rem instructions.
DivRemUser(DivRemChip<UserMode>)
An AIR for RISC-V Div and Rem instructions (User mode).
Lt(LtChip<SupervisorMode>)
An AIR for RISC-V Lt instruction.
LtUser(LtChip<UserMode>)
An AIR for RISC-V Lt instruction (User mode).
AluX0(AluX0Chip<SupervisorMode>)
An AIR for all RISC-V ALU instructions with rd = x0.
AluX0User(AluX0Chip<UserMode>)
An AIR for all RISC-V ALU instructions with rd = x0 (User mode).
ShiftLeft(ShiftLeftChip<SupervisorMode>)
An AIR for RISC-V SLL instruction.
ShiftLeftUser(ShiftLeftChip<UserMode>)
An AIR for RISC-V SLL instruction (User mode).
ShiftRight(ShiftRightChip<SupervisorMode>)
An AIR for RISC-V SRL and SRA instruction.
ShiftRightUser(ShiftRightChip<UserMode>)
An AIR for RISC-V SRL and SRA instruction (User mode).
LoadByte(LoadByteChip<SupervisorMode>)
An AIR for RISC-V memory load byte instructions.
LoadByteUser(LoadByteChip<UserMode>)
An AIR for RISC-V memory load byte instructions (User mode).
LoadHalf(LoadHalfChip<SupervisorMode>)
An AIR for RISC-V memory load half instructions.
LoadHalfUser(LoadHalfChip<UserMode>)
An AIR for RISC-V memory load half instructions (User mode).
LoadWord(LoadWordChip<SupervisorMode>)
An AIR for RISC-V memory load word instructions.
LoadWordUser(LoadWordChip<UserMode>)
An AIR for RISC-V memory load word instructions (User mode).
LoadDouble(LoadDoubleChip<SupervisorMode>)
An AIR for RISC-V memory load double instructions.
LoadDoubleUser(LoadDoubleChip<UserMode>)
An AIR for RISC-V memory load double instructions (User mode).
LoadX0(LoadX0Chip<SupervisorMode>)
An AIR for RISC-V memory load x0 instructions.
LoadX0User(LoadX0Chip<UserMode>)
An AIR for RISC-V memory load x0 instructions (User mode).
StoreByte(StoreByteChip<SupervisorMode>)
An AIR for RISC-V memory store byte instructions.
StoreByteUser(StoreByteChip<UserMode>)
An AIR for RISC-V memory store byte instructions (User mode).
StoreHalf(StoreHalfChip<SupervisorMode>)
An AIR for RISC-V memory store half instructions.
StoreHalfUser(StoreHalfChip<UserMode>)
An AIR for RISC-V memory store half instructions (User mode).
StoreWord(StoreWordChip<SupervisorMode>)
An AIR for RISC-V memory store word instructions.
StoreWordUser(StoreWordChip<UserMode>)
An AIR for RISC-V memory store word instructions (User mode).
StoreDouble(StoreDoubleChip<SupervisorMode>)
An AIR for RISC-V memory store double instructions.
StoreDoubleUser(StoreDoubleChip<UserMode>)
An AIR for RISC-V memory store double instructions (User mode).
UType(UTypeChip<SupervisorMode>)
An AIR for RISC-V UType instruction.
UTypeUser(UTypeChip<UserMode>)
An AIR for RISC-V UType instruction (User mode).
Branch(BranchChip<SupervisorMode>)
An AIR for RISC-V branch instructions.
BranchUser(BranchChip<UserMode>)
An AIR for RISC-V branch instructions (User mode).
Jal(JalChip<SupervisorMode>)
An AIR for RISC-V jal instructions.
JalUser(JalChip<UserMode>)
An AIR for RISC-V jal instructions (User mode).
Jalr(JalrChip<SupervisorMode>)
An AIR for RISC-V jalr instructions.
JalrUser(JalrChip<UserMode>)
An AIR for RISC-V jalr instructions (User mode).
SyscallInstrs(SyscallInstrsChip<SupervisorMode>)
An AIR for RISC-V ecall instructions.
SyscallInstrsUser(SyscallInstrsChip<UserMode>)
An AIR for RISC-V ecall instructions (User mode).
TrapExec(TrapExecChip)
An AIR for traps due to untrusted instruction not having correct permission.
TrapMem(TrapMemChip)
An AIR for traps due to load, store operations not having correct permission.
ByteLookup(ByteChip<F>)
A lookup table for byte operations.
RangeLookup(RangeChip<F>)
A lookup table for range operations.
MemoryGlobalInit(MemoryGlobalChip)
A table for initializing the global memory state.
MemoryGlobalFinal(MemoryGlobalChip)
A table for finalizing the global memory state.
PageProtGlobalInit(PageProtGlobalChip)
A table for initializing the global page prot state.
PageProtGlobalFinal(PageProtGlobalChip)
A table for finalizing the global page prot state.
MemoryLocal(MemoryLocalChip)
A table for the local memory state.
MemoryBump(MemoryBumpChip)
A table for bumping memory timestamps.
PageProt(PageProtChip)
A table for page prot access.
PageProtLocal(PageProtLocalChip)
A table for the local page prot state.
StateBump(StateBumpChip)
A table for bumping the state timestamps.
SyscallCore(SyscallChip<SupervisorMode>)
A table for all the syscall invocations.
SyscallCoreUser(SyscallChip<UserMode>)
A table for all the syscall invocations (user mode).
SyscallPrecompile(SyscallChip<SupervisorMode>)
A table for all the precompile invocations.
SyscallPrecompileUser(SyscallChip<UserMode>)
A table for all the precompile invocations (user mode).
Global(GlobalChip)
A table for all the global interactions.
Sha256Extend(ShaExtendChip)
A precompile for sha256 extend.
Sha256ExtendControl(ShaExtendControlChip<SupervisorMode>)
A controller for sha256 extend.
Sha256ExtendControlUser(ShaExtendControlChip<UserMode>)
A controller for sha256 extend (user mode).
Sha256Compress(ShaCompressChip)
A precompile for sha256 compress.
Sha256CompressControl(ShaCompressControlChip<SupervisorMode>)
A controller for sha256 compress.
Sha256CompressControlUser(ShaCompressControlChip<UserMode>)
A controller for sha256 compress (user mode).
Ed25519Add(EdAddAssignChip<EdwardsCurve<Ed25519Parameters>, SupervisorMode>)
A precompile for addition on the Elliptic curve ed25519.
Ed25519AddUser(EdAddAssignChip<EdwardsCurve<Ed25519Parameters>, UserMode>)
A precompile for addition on the Elliptic curve ed25519 (user mode).
Ed25519Decompress(EdDecompressChip<Ed25519Parameters, SupervisorMode>)
A precompile for decompressing a point on the Edwards curve ed25519.
Ed25519DecompressUser(EdDecompressChip<Ed25519Parameters, UserMode>)
A precompile for decompressing a point on the Edwards curve ed25519 (user mode).
Secp256k1Add(WeierstrassAddAssignChip<SwCurve<Secp256k1Parameters>, SupervisorMode>)
A precompile for addition on the Elliptic curve secp256k1.
Secp256k1AddUser(WeierstrassAddAssignChip<SwCurve<Secp256k1Parameters>, UserMode>)
A precompile for addition on the Elliptic curve secp256k1 (user mode).
Secp256k1Double(WeierstrassDoubleAssignChip<SwCurve<Secp256k1Parameters>, SupervisorMode>)
A precompile for doubling a point on the Elliptic curve secp256k1.
Secp256k1DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Secp256k1Parameters>, UserMode>)
A precompile for doubling a point on the Elliptic curve secp256k1 (user mode).
Secp256r1Add(WeierstrassAddAssignChip<SwCurve<Secp256r1Parameters>, SupervisorMode>)
A precompile for addition on the Elliptic curve secp256r1.
Secp256r1AddUser(WeierstrassAddAssignChip<SwCurve<Secp256r1Parameters>, UserMode>)
A precompile for addition on the Elliptic curve secp256r1 (user mode).
Secp256r1Double(WeierstrassDoubleAssignChip<SwCurve<Secp256r1Parameters>, SupervisorMode>)
A precompile for doubling a point on the Elliptic curve secp256r1.
Secp256r1DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Secp256r1Parameters>, UserMode>)
A precompile for doubling a point on the Elliptic curve secp256r1 (user mode).
KeccakP(KeccakPermuteChip)
A precompile for the Keccak permutation.
KeccakPControl(KeccakPermuteControlChip<SupervisorMode>)
A controller for the Keccak permutation.
KeccakPControlUser(KeccakPermuteControlChip<UserMode>)
A controller for the Keccak permutation (user mode).
Bn254Add(WeierstrassAddAssignChip<SwCurve<Bn254Parameters>, SupervisorMode>)
A precompile for addition on the Elliptic curve bn254.
Bn254AddUser(WeierstrassAddAssignChip<SwCurve<Bn254Parameters>, UserMode>)
A precompile for addition on the Elliptic curve bn254 (user mode).
Bn254Double(WeierstrassDoubleAssignChip<SwCurve<Bn254Parameters>, SupervisorMode>)
A precompile for doubling a point on the Elliptic curve bn254.
Bn254DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Bn254Parameters>, UserMode>)
A precompile for doubling a point on the Elliptic curve bn254 (user mode).
Bls12381Add(WeierstrassAddAssignChip<SwCurve<Bls12381Parameters>, SupervisorMode>)
A precompile for addition on the Elliptic curve bls12_381.
Bls12381AddUser(WeierstrassAddAssignChip<SwCurve<Bls12381Parameters>, UserMode>)
A precompile for addition on the Elliptic curve bls12_381 (user mode).
Bls12381Double(WeierstrassDoubleAssignChip<SwCurve<Bls12381Parameters>, SupervisorMode>)
A precompile for doubling a point on the Elliptic curve bls12_381.
Bls12381DoubleUser(WeierstrassDoubleAssignChip<SwCurve<Bls12381Parameters>, UserMode>)
A precompile for doubling a point on the Elliptic curve bls12_381 (user mode).
Uint256Mul(Uint256MulChip<SupervisorMode>)
A precompile for uint256 mul.
Uint256MulUser(Uint256MulChip<UserMode>)
A precompile for uint256 mul (user mode).
Uint256Ops(Uint256OpsChip<SupervisorMode>)
A precompile for uint256 operations (add/mul with carry).
Uint256OpsUser(Uint256OpsChip<UserMode>)
A precompile for uint256 operations (add/mul with carry) (user mode).
Bls12381Fp(FpOpChip<Bls12381BaseField, SupervisorMode>)
A precompile for BLS12-381 fp operation.
Bls12381FpUser(FpOpChip<Bls12381BaseField, UserMode>)
A precompile for BLS12-381 fp operation (user mode).
Bls12381Fp2Mul(Fp2MulAssignChip<Bls12381BaseField, SupervisorMode>)
A precompile for BLS12-381 fp2 multiplication.
Bls12381Fp2MulUser(Fp2MulAssignChip<Bls12381BaseField, UserMode>)
A precompile for BLS12-381 fp2 multiplication (user mode).
Bls12381Fp2AddSub(Fp2AddSubAssignChip<Bls12381BaseField, SupervisorMode>)
A precompile for BLS12-381 fp2 addition/subtraction.
Bls12381Fp2AddSubUser(Fp2AddSubAssignChip<Bls12381BaseField, UserMode>)
A precompile for BLS12-381 fp2 addition/subtraction (user mode).
Bn254Fp(FpOpChip<Bn254BaseField, SupervisorMode>)
A precompile for BN-254 fp operation.
Bn254FpUser(FpOpChip<Bn254BaseField, UserMode>)
A precompile for BN-254 fp operation (user mode).
Bn254Fp2Mul(Fp2MulAssignChip<Bn254BaseField, SupervisorMode>)
A precompile for BN-254 fp2 multiplication.
Bn254Fp2MulUser(Fp2MulAssignChip<Bn254BaseField, UserMode>)
A precompile for BN-254 fp2 multiplication (user mode).
Bn254Fp2AddSub(Fp2AddSubAssignChip<Bn254BaseField, SupervisorMode>)
A precompile for BN-254 fp2 addition/subtraction.
Bn254Fp2AddSubUser(Fp2AddSubAssignChip<Bn254BaseField, UserMode>)
A precompile for BN-254 fp2 addition/subtraction (user mode).
Mprotect(MProtectChip)
A precompile for mprotect syscalls.
SigReturn(SigReturnChip)
A precompile for sigreturn syscall.
Poseidon2(Poseidon2Chip<SupervisorMode>)
A precompile for Poseidon2 permutation.
Poseidon2User(Poseidon2Chip<UserMode>)
A precompile for Poseidon2 permutation (user mode).
Implementations§
Source§impl<F> RiscvAir<F>where
F: PrimeField32,
impl<F> RiscvAir<F>where
F: PrimeField32,
pub fn id(&self) -> RiscvAirId
pub fn machine() -> Machine<F, RiscvAir<F>>
Sourcepub fn get_airs_and_costs() -> (Vec<RiscvAir<F>>, HashMap<String, u64>)
pub fn get_airs_and_costs() -> (Vec<RiscvAir<F>>, HashMap<String, u64>)
Get all the different RISC-V AIRs and their costs.
Sourcepub fn get_chips_and_costs() -> (Vec<Chip<F, RiscvAir<F>>>, HashMap<String, u64>)
pub fn get_chips_and_costs() -> (Vec<Chip<F, RiscvAir<F>>>, HashMap<String, u64>)
Get all the different RISC-V chips and their costs.
Sourcepub fn core_heights(record: &ExecutionRecord) -> Vec<(RiscvAirId, usize)>
pub fn core_heights(record: &ExecutionRecord) -> Vec<(RiscvAirId, usize)>
Get the heights of the chips for a given execution record.
Trait Implementations§
Source§impl<F> BaseAir<F> for RiscvAir<F>where
F: PrimeField32,
impl<F> BaseAir<F> for RiscvAir<F>where
F: PrimeField32,
fn preprocessed_trace(&self) -> Option<DenseMatrix<F>>
Source§impl<F> Debug for RiscvAir<F>where
F: PrimeField32,
impl<F> Debug for RiscvAir<F>where
F: PrimeField32,
Source§impl<F> Hash for RiscvAir<F>where
F: PrimeField32,
impl<F> Hash for RiscvAir<F>where
F: PrimeField32,
Source§impl<F> IntoDiscriminant for RiscvAir<F>where
F: PrimeField32,
impl<F> IntoDiscriminant for RiscvAir<F>where
F: PrimeField32,
Source§type Discriminant = RiscvAirDiscriminants
type Discriminant = RiscvAirDiscriminants
fn discriminant(&self) -> <RiscvAir<F> as IntoDiscriminant>::Discriminant
Source§impl<F> MachineAir<F> for RiscvAir<F>where
F: PrimeField32,
impl<F> MachineAir<F> for RiscvAir<F>where
F: PrimeField32,
Source§type Record = ExecutionRecord
type Record = ExecutionRecord
Source§fn column_names(&self) -> Vec<String>
fn column_names(&self) -> Vec<String>
self.width().Source§fn preprocessed_width(&self) -> usize
fn preprocessed_width(&self) -> usize
Source§fn preprocessed_num_rows(&self, program: &Program) -> Option<usize>
fn preprocessed_num_rows(&self, program: &Program) -> Option<usize>
Source§fn generate_preprocessed_trace(
&self,
program: &Program,
) -> Option<DenseMatrix<F>>
fn generate_preprocessed_trace( &self, program: &Program, ) -> Option<DenseMatrix<F>>
Source§fn generate_preprocessed_trace_into(
&self,
program: &Program,
buffer: &mut [MaybeUninit<F>],
)
fn generate_preprocessed_trace_into( &self, program: &Program, buffer: &mut [MaybeUninit<F>], )
MaybeUninit<F>.Source§fn generate_trace(
&self,
input: &ExecutionRecord,
output: &mut ExecutionRecord,
) -> DenseMatrix<F>
fn generate_trace( &self, input: &ExecutionRecord, output: &mut ExecutionRecord, ) -> DenseMatrix<F>
Source§fn generate_trace_into(
&self,
input: &ExecutionRecord,
output: &mut ExecutionRecord,
buffer: &mut [MaybeUninit<F>],
)
fn generate_trace_into( &self, input: &ExecutionRecord, output: &mut ExecutionRecord, buffer: &mut [MaybeUninit<F>], )
MaybeUninit<F>.Source§fn generate_dependencies(
&self,
input: &ExecutionRecord,
output: &mut ExecutionRecord,
)
fn generate_dependencies( &self, input: &ExecutionRecord, output: &mut ExecutionRecord, )
Source§fn included(&self, shard: &<RiscvAir<F> as MachineAir<F>>::Record) -> bool
fn included(&self, shard: &<RiscvAir<F> as MachineAir<F>>::Record) -> bool
Source§impl<F> PartialEq for RiscvAir<F>where
F: PrimeField32,
impl<F> PartialEq for RiscvAir<F>where
F: PrimeField32,
impl<F> Eq for RiscvAir<F>where
F: PrimeField32,
Auto Trait Implementations§
impl<F> Freeze for RiscvAir<F>
impl<F> RefUnwindSafe for RiscvAir<F>where
F: RefUnwindSafe,
impl<F> Send for RiscvAir<F>
impl<F> Sync for RiscvAir<F>
impl<F> Unpin for RiscvAir<F>where
F: Unpin,
impl<F> UnsafeUnpin for RiscvAir<F>
impl<F> UnwindSafe for RiscvAir<F>where
F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<F, EF, E> ExtensionOperand<F, EF> for E
impl<F, EF, E> ExtensionOperand<F, EF> for E
fn to_operand(self) -> ExtOperand<F, EF>
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.