Skip to main content

oxiz_math/simd/
mod.rs

1//! SIMD-Accelerated Mathematical Operations.
2//!
3//! Provides vectorized implementations of common mathematical operations
4//! using Rust's portable SIMD support.
5//!
6//! # `no_std`
7//!
8//! The integer kernels ([`polynomial_simd`], [`vector_ops`]) build without
9//! `std`. The floating-point kernels ([`matrix_simd`], [`simplex_simd`])
10//! require `num_traits::Float`, which is only available with `std`, so they
11//! are gated behind the `std` feature rather than being silently reduced to
12//! a stub.
13
14#[allow(unused_imports)]
15use crate::prelude::*;
16
17#[cfg(feature = "std")]
18pub mod matrix_simd;
19pub mod polynomial_simd;
20#[cfg(feature = "std")]
21pub mod simplex_simd;
22pub mod vector_ops;
23
24#[cfg(feature = "std")]
25pub use matrix_simd::{
26    simd_determinant, simd_lu_decomposition, simd_lu_solve, simd_matrix_inverse, simd_matrix_mul,
27    simd_matrix_vec_mul as matrix_vec_mul_enhanced, simd_qr_decomposition, transpose,
28};
29pub use polynomial_simd::{
30    poly_add_coeffs, poly_dot_product, poly_eval_horner_i64, poly_mul_scalar, poly_sub_coeffs,
31    simd_poly_add, simd_poly_eval, simd_poly_mul,
32};
33#[cfg(feature = "std")]
34pub use simplex_simd::{
35    SimplexError, SimplexSolution, SimplexTableau, simd_dual_simplex, simd_simplex_solve,
36};
37pub use vector_ops::{simd_dot_product, simd_matrix_vec_mul, simd_norm_squared, simd_sum};