Skip to main content

simd_kernels/
lib.rs

1// Copyright (c) 2025 SpaceCell Enterprises
2// SPDX-License-Identifier: AGPL-3.0-or-later
3// Commercial licensing available. See LICENSE and LICENSING.md.
4
5#![feature(portable_simd)]
6
7// Link OpenBLAS when linear_algebra feature is enabled.
8// This forces the linker to include the OpenBLAS symbols.
9#[cfg(feature = "linear_algebra")]
10extern crate openblas_src;
11
12// compile with RUSTFLAGS="-C target-cpu=native" cargo +nightly build --features portable_simd
13
14pub mod operators;
15
16pub mod kernels {
17    pub mod aggregate;
18    pub mod binary;
19    pub mod comparison;
20    pub mod conditional;
21    pub mod logical;
22    pub mod sort;
23    pub mod unary;
24    pub mod window;
25    pub mod scientific {
26        #[cfg(feature = "linear_algebra")]
27        pub mod blas_lapack;
28        #[cfg(feature = "probability_distributions")]
29        pub mod distributions;
30        #[cfg(feature = "probability_distributions")]
31        pub mod erf;
32        #[cfg(feature = "fourier_transforms")]
33        pub mod fft;
34        #[cfg(feature = "linear_algebra")]
35        pub mod matrix;
36        #[cfg(feature = "universal_functions")]
37        pub mod scalar;
38        pub mod vector;
39    }
40}
41
42pub mod traits {
43    pub mod dense_iter;
44    pub mod to_bits;
45}
46
47pub mod utils;
48
49// The bitmask, arithmetic and string kernels are contained in the upstream `Minarrow` crate,
50// and are available in the namespace.
51pub mod minarrow_kernels {
52    pub use minarrow::kernels::arithmetic;
53    pub use minarrow::kernels::bitmask;
54}