p3_goldilocks/
lib.rs

1//! The prime field known as Goldilocks, defined as `F_p` where `p = 2^64 - 2^32 + 1`.
2
3#![no_std]
4
5extern crate alloc;
6
7mod extension;
8mod goldilocks;
9mod mds;
10mod poseidon2;
11
12pub use goldilocks::*;
13pub use mds::*;
14pub use poseidon2::*;
15
16#[cfg(all(
17    target_arch = "x86_64",
18    target_feature = "avx2",
19    not(target_feature = "avx512f")
20))]
21mod x86_64_avx2;
22
23#[cfg(all(
24    target_arch = "x86_64",
25    target_feature = "avx2",
26    not(target_feature = "avx512f")
27))]
28pub use x86_64_avx2::*;
29
30#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
31mod x86_64_avx512;
32
33#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
34pub use x86_64_avx512::*;