pub struct SimdOptimizer;Expand description
SIMD-optimized tensor operations using stable Rust features
This is the main entry point for SIMD operations, providing a unified interface to all optimized functions while maintaining backward compatibility.
Implementations§
Source§impl SimdOptimizer
impl SimdOptimizer
Sourcepub fn add_f32_unchecked(a: &[f32], b: &[f32], result: &mut [f32])
pub fn add_f32_unchecked(a: &[f32], b: &[f32], result: &mut [f32])
Fast inline element-wise addition without bounds checking (for hot paths)
Sourcepub fn add_f32_optimized(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
pub fn add_f32_optimized(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
Element-wise addition with SciRS2-Core SIMD auto-vectorization (safe version)
Sourcepub fn add_f32_auto(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
pub fn add_f32_auto(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
Auto-selection element-wise addition (chooses optimal implementation based on size)
Sourcepub fn mul_f32_unchecked(a: &[f32], b: &[f32], result: &mut [f32])
pub fn mul_f32_unchecked(a: &[f32], b: &[f32], result: &mut [f32])
Fast inline element-wise multiplication without bounds checking (for hot paths)
Sourcepub fn mul_f32_optimized(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
pub fn mul_f32_optimized(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
Element-wise multiplication with optimization hints for f32 tensors (safe version)
Sourcepub fn sub_f32_optimized(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
pub fn sub_f32_optimized(a: &[f32], b: &[f32], result: &mut [f32]) -> Result<()>
Element-wise subtraction with optimization hints for f32 tensors (safe version)
Sourcepub fn relu_f32_optimized(input: &[f32], output: &mut [f32]) -> Result<()>
pub fn relu_f32_optimized(input: &[f32], output: &mut [f32]) -> Result<()>
Optimized ReLU activation function
Sourcepub fn sigmoid_f32_optimized(input: &[f32], output: &mut [f32]) -> Result<()>
pub fn sigmoid_f32_optimized(input: &[f32], output: &mut [f32]) -> Result<()>
Optimized sigmoid activation with fast approximation
Sourcepub fn matmul_f32_blocked(
a: &[f32],
b: &[f32],
c: &mut [f32],
m: usize,
n: usize,
k: usize,
block_size: usize,
) -> Result<()>
pub fn matmul_f32_blocked( a: &[f32], b: &[f32], c: &mut [f32], m: usize, n: usize, k: usize, block_size: usize, ) -> Result<()>
Advanced cache-friendly matrix multiplication using blocking
Sourcepub fn dot_product_f32_optimized(a: &[f32], b: &[f32]) -> Result<f32>
pub fn dot_product_f32_optimized(a: &[f32], b: &[f32]) -> Result<f32>
Optimized dot product for f32 vectors using Kahan summation
Sourcepub fn sum_f32_unchecked(input: &[f32]) -> f32
pub fn sum_f32_unchecked(input: &[f32]) -> f32
Ultra-fast vectorized horizontal sum reduction
Sourcepub fn max_f32_unchecked(input: &[f32]) -> f32
pub fn max_f32_unchecked(input: &[f32]) -> f32
Vectorized maximum element finding with SIMD optimization
Sourcepub fn detect_capabilities() -> SimdCapabilities
pub fn detect_capabilities() -> SimdCapabilities
Platform-specific capabilities detection (stable approach)
Sourcepub fn reduce_sum_f32_optimized(input: &[f32]) -> Result<f32>
pub fn reduce_sum_f32_optimized(input: &[f32]) -> Result<f32>
Advanced vectorized reduction operations with numerical stability
Auto Trait Implementations§
impl Freeze for SimdOptimizer
impl RefUnwindSafe for SimdOptimizer
impl Send for SimdOptimizer
impl Sync for SimdOptimizer
impl Unpin for SimdOptimizer
impl UnsafeUnpin for SimdOptimizer
impl UnwindSafe for SimdOptimizer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more