openvm_algebra_circuit/fp2_chip/
mod.rs

1use openvm_circuit::arch::{VmAirWrapper, VmChipWrapper};
2use openvm_mod_circuit_builder::{FieldExpressionCoreAir, FieldExpressionFiller};
3use openvm_rv32_adapters::{Rv32VecHeapAdapterAir, Rv32VecHeapAdapterFiller};
4
5use crate::FieldExprVecHeapExecutor;
6
7mod addsub;
8pub use addsub::*;
9mod muldiv;
10pub use muldiv::*;
11
12#[cfg(feature = "cuda")]
13mod cuda;
14#[cfg(feature = "cuda")]
15pub use cuda::*;
16
17pub type Fp2Air<const BLOCKS: usize, const BLOCK_SIZE: usize> = VmAirWrapper<
18    Rv32VecHeapAdapterAir<2, BLOCKS, BLOCKS, BLOCK_SIZE, BLOCK_SIZE>,
19    FieldExpressionCoreAir,
20>;
21
22pub type Fp2Executor<const BLOCKS: usize, const BLOCK_SIZE: usize> =
23    FieldExprVecHeapExecutor<BLOCKS, BLOCK_SIZE, true>;
24
25pub type Fp2Chip<F, const BLOCKS: usize, const BLOCK_SIZE: usize> = VmChipWrapper<
26    F,
27    FieldExpressionFiller<Rv32VecHeapAdapterFiller<2, BLOCKS, BLOCKS, BLOCK_SIZE, BLOCK_SIZE>>,
28>;
29
30#[cfg(test)]
31mod tests;