Skip to main content

binius_circuits/bignum/
mod.rs

1// Copyright 2025 Irreducible Inc.
2//! Arbitrary-precision bignum arithmetic for circuits.
3//!
4//! This module provides operations on big integers represented as vectors of `Wire` elements,
5//! where each `Wire` represents a 64-bit limb. The representation uses little-endian ordering,
6//! meaning the least significant limb is at index 0.
7
8mod addsub;
9mod big_uint_divide;
10mod big_uint_mod_pow;
11mod biguint;
12mod cmp;
13mod mod_divide;
14mod mod_inverse;
15mod mul;
16mod prime_field;
17mod reduce;
18
19#[cfg(test)]
20mod tests;
21
22pub use addsub::{add, sub};
23pub use big_uint_divide::BigUintDivideHint;
24pub use big_uint_mod_pow::BigUintModPowHint;
25pub use biguint::{BigUint, assert_eq, num_biguint_from_u64_limbs, select};
26pub use cmp::{biguint_eq, biguint_lt};
27pub use mod_divide::ModDivideHint;
28pub use mod_inverse::ModInverseHint;
29pub use mul::{karatsuba_mul, optimal_mul, optimal_sqr, textbook_mul, textbook_square};
30pub use prime_field::PseudoMersennePrimeField;
31pub use reduce::{ModReduce, PseudoMersenneModReduce};