p3_baby_bear/
lib.rs

1#![no_std]
2#![cfg_attr(
3    all(
4        feature = "nightly-features",
5        target_arch = "x86_64",
6        target_feature = "avx512f"
7    ),
8    feature(stdarch_x86_avx512)
9)]
10
11extern crate alloc;
12
13mod baby_bear;
14mod extension;
15mod mds;
16mod poseidon2;
17
18pub use baby_bear::*;
19pub use mds::*;
20pub use poseidon2::*;
21
22#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
23mod aarch64_neon;
24#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
25pub use aarch64_neon::*;
26
27#[cfg(all(
28    target_arch = "x86_64",
29    target_feature = "avx2",
30    not(all(feature = "nightly-features", target_feature = "avx512f"))
31))]
32mod x86_64_avx2;
33#[cfg(all(
34    target_arch = "x86_64",
35    target_feature = "avx2",
36    not(all(feature = "nightly-features", target_feature = "avx512f"))
37))]
38pub use x86_64_avx2::*;
39
40#[cfg(all(
41    feature = "nightly-features",
42    target_arch = "x86_64",
43    target_feature = "avx512f"
44))]
45mod x86_64_avx512;
46#[cfg(all(
47    feature = "nightly-features",
48    target_arch = "x86_64",
49    target_feature = "avx512f"
50))]
51pub use x86_64_avx512::*;