Skip to main content

binius_field/
lib.rs

1// Copyright 2023-2025 Irreducible Inc.
2// Copyright 2026 The Binius Developers
3
4#![warn(rustdoc::missing_crate_level_docs)]
5
6//! Binary tower field implementations for use in Binius.
7//!
8//! This library implements binary tower field arithmetic. The canonical binary field tower
9//! construction is specified in [DP23], section 2.3. This is a family of binary fields with
10//! extension degree $2^{\iota}$ for any tower height $\iota$. Mathematically, we label these sets
11//! $T_{\iota}$.
12//!
13//! [DP23]: https://eprint.iacr.org/2023/1784
14
15pub mod arch;
16pub mod arithmetic_traits;
17pub mod binary_field;
18mod divisible;
19pub mod field;
20pub mod fields;
21pub mod linear_transformation;
22mod maskable;
23pub mod packed;
24pub mod packed_extension;
25pub mod packed_fields;
26mod random;
27#[cfg(test)]
28mod tests;
29pub mod transpose;
30mod underlier;
31pub mod util;
32
33pub use arithmetic_traits::{MulX, WideMul};
34pub use binary_field::*;
35pub use divisible::Divisible;
36pub use field::{ExtensionField, Field, FieldOps};
37pub use fields::{ghash::*, ghash_sq::*, rijndael::*};
38pub use maskable::Maskable;
39pub use packed::PackedField;
40pub use packed_extension::*;
41pub use packed_fields::{sliced::SlicedPackedField, *};
42pub use random::Random;
43pub use transpose::{transpose_square_blocks, transpose_square_blocks_array};
44pub use underlier::{Underlier, UnderlierView};