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>;