simd_kernels/
lib.rs

1// Copyright Peter Bower 2025. All Rights Reserved.
2// Licensed under the Mozilla Public License (MPL) 2.0.
3// See LICENSE for details.
4
5// At the time of writing this unlocks extra std::simd that the developers
6// intend on stabilising but haven't yet.
7// This includes custom lane management abstractions, and related features.
8#![feature(portable_simd)]
9#![feature(float_erf)]
10
11// Link OpenBLAS when linear_algebra feature is enabled.
12// This forces the linker to include the OpenBLAS symbols.
13#[cfg(feature = "linear_algebra")]
14extern crate openblas_src;
15
16// compile with RUSTFLAGS="-C target-cpu=native" cargo +nightly build --features portable_simd
17
18pub mod operators;
19
20// The bitmask, arithmetic and string kernels are contained in the upstream `Minarrow` crate,
21// and are available in the namespace.
22
23pub mod kernels {
24    pub mod aggregate;
25    pub mod binary;
26    pub mod comparison;
27    pub mod conditional;
28    pub mod logical;
29    pub mod sort;
30    pub mod unary;
31    pub mod window;
32    pub mod scientific {
33        #[cfg(feature = "linear_algebra")]
34        pub mod blas_lapack;
35        #[cfg(feature = "probability_distributions")]
36        pub mod distributions;
37        #[cfg(feature = "probability_distributions")]
38        pub mod erf;
39        #[cfg(feature = "fourier_transforms")]
40        pub mod fft;
41        #[cfg(feature = "linear_algebra")]
42        pub mod matrix;
43        #[cfg(feature = "universal_functions")]
44        pub mod scalar;
45        #[cfg(feature = "linear_algebra")]
46        pub mod vector;
47    }
48}
49
50pub mod traits {
51    pub mod dense_iter;
52    pub mod to_bits;
53}
54
55pub mod config;
56
57pub mod utils;