openvm_bigint_circuit/
lib.rs

1use openvm_circuit::{self, arch::VmChipWrapper};
2use openvm_rv32_adapters::{Rv32HeapAdapterChip, Rv32HeapBranchAdapterChip};
3use openvm_rv32im_circuit::{
4    adapters::{INT256_NUM_LIMBS, RV32_CELL_BITS},
5    BaseAluCoreChip, BranchEqualCoreChip, BranchLessThanCoreChip, LessThanCoreChip,
6    MultiplicationCoreChip, ShiftCoreChip,
7};
8
9mod extension;
10pub use extension::*;
11
12#[cfg(test)]
13mod tests;
14
15pub type Rv32BaseAlu256Chip<F> = VmChipWrapper<
16    F,
17    Rv32HeapAdapterChip<F, 2, INT256_NUM_LIMBS, INT256_NUM_LIMBS>,
18    BaseAluCoreChip<INT256_NUM_LIMBS, RV32_CELL_BITS>,
19>;
20
21pub type Rv32LessThan256Chip<F> = VmChipWrapper<
22    F,
23    Rv32HeapAdapterChip<F, 2, INT256_NUM_LIMBS, INT256_NUM_LIMBS>,
24    LessThanCoreChip<INT256_NUM_LIMBS, RV32_CELL_BITS>,
25>;
26
27pub type Rv32Multiplication256Chip<F> = VmChipWrapper<
28    F,
29    Rv32HeapAdapterChip<F, 2, INT256_NUM_LIMBS, INT256_NUM_LIMBS>,
30    MultiplicationCoreChip<INT256_NUM_LIMBS, RV32_CELL_BITS>,
31>;
32
33pub type Rv32Shift256Chip<F> = VmChipWrapper<
34    F,
35    Rv32HeapAdapterChip<F, 2, INT256_NUM_LIMBS, INT256_NUM_LIMBS>,
36    ShiftCoreChip<INT256_NUM_LIMBS, RV32_CELL_BITS>,
37>;
38
39pub type Rv32BranchEqual256Chip<F> = VmChipWrapper<
40    F,
41    Rv32HeapBranchAdapterChip<F, 2, INT256_NUM_LIMBS>,
42    BranchEqualCoreChip<INT256_NUM_LIMBS>,
43>;
44
45pub type Rv32BranchLessThan256Chip<F> = VmChipWrapper<
46    F,
47    Rv32HeapBranchAdapterChip<F, 2, INT256_NUM_LIMBS>,
48    BranchLessThanCoreChip<INT256_NUM_LIMBS, RV32_CELL_BITS>,
49>;