Skip to main content

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
16pub mod poseidon1;
17
18#[cfg(target_arch = "aarch64")]
19mod aarch64_neon;
20
21#[cfg(target_arch = "aarch64")]
22pub use aarch64_neon::*;
23
24#[cfg(all(
25    target_arch = "x86_64",
26    target_feature = "avx2",
27    not(target_feature = "avx512f")
28))]
29mod x86_64_avx2;
30
31#[cfg(all(
32    target_arch = "x86_64",
33    target_feature = "avx2",
34    not(target_feature = "avx512f")
35))]
36pub use x86_64_avx2::*;
37
38#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
39mod x86_64_avx512;
40
41#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
42pub use x86_64_avx512::*;