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;
19mod binary_field_arithmetic;
20pub mod extension;
21pub mod field;
22pub mod ghash;
23pub mod ghash_sq;
24pub mod linear_transformation;
25mod macros;
26pub mod packed;
27pub mod packed_aes_field;
28pub mod packed_binary_field;
29pub mod packed_extension;
30pub mod packed_extension_ops;
31mod packed_ghash;
32mod random;
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_field::*;
49pub use packed_binary_field::*;
50pub use packed_extension::*;
51pub use packed_extension_ops::*;
52pub use packed_ghash::*;
53pub use random::Random;
54pub use transpose::square_transpose;
55pub use underlier::{Divisible, Maskable, UnderlierType, WithUnderlier};