halo2curves_axiom/
lib.rs

1mod arithmetic;
2pub mod ff_ext;
3pub mod fft;
4pub mod hash_to_curve;
5pub mod msm;
6pub mod serde;
7
8pub mod bls12_381;
9pub mod bn256;
10pub mod ed25519;
11pub mod grumpkin;
12pub mod pasta;
13pub mod pluto_eris;
14pub mod secp256k1;
15pub mod secp256r1;
16pub mod secq256k1;
17
18#[macro_use]
19mod derive;
20
21// Re-export to simplify down stream dependencies
22pub use arithmetic::CurveAffineExt;
23pub use ff;
24pub use group;
25pub use pairing;
26pub use pasta_curves::arithmetic::{Coordinates, CurveAffine, CurveExt};
27
28#[cfg(test)]
29pub mod tests;
30
31#[cfg(all(feature = "prefetch", target_arch = "x86_64"))]
32#[inline(always)]
33pub fn prefetch<T>(data: &[T], offset: usize) {
34    use core::arch::x86_64::_mm_prefetch;
35    unsafe {
36        _mm_prefetch(
37            data.as_ptr().add(offset) as *const i8,
38            core::arch::x86_64::_MM_HINT_T0,
39        );
40    }
41}