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 aes_field;
16pub mod arch;
17pub mod arithmetic_traits;
18pub mod binary_field;
19pub mod extension;
20pub mod field;
21pub mod ghash;
22pub mod ghash_sq;
23pub mod linear_transformation;
24mod macros;
25pub mod packed;
26pub mod packed_aes;
27pub mod packed_binary_field;
28pub mod packed_extension;
29mod packed_ghash;
30mod packed_ghash_sq;
31mod random;
32pub mod sliced_packed_field;
33#[cfg(test)]
34mod tests;
35mod tracing;
36pub mod transpose;
37mod underlier;
38pub mod util;
39
40pub use aes_field::*;
41pub use arithmetic_traits::WideMul;
42pub use binary_field::*;
43pub use extension::*;
44pub use field::{Field, FieldOps};
45pub use ghash::*;
46pub use ghash_sq::*;
47pub use packed::PackedField;
48pub use packed_aes::*;
49pub use packed_binary_field::*;
50pub use packed_extension::*;
51pub use packed_ghash::*;
52pub use packed_ghash_sq::*;
53pub use random::Random;
54pub use sliced_packed_field::SlicedPackedField;
55pub use transpose::square_transpose;
56pub use underlier::{Divisible, Maskable, UnderlierType, WithUnderlier};