Skip to main content

Module vector

Module vector 

Source
Expand description

§SIMD Vector Operations Framework

High-performance SIMD-optimized vector operations library providing comprehensive mathematical operations with automatic platform detection and optimization.

§Features

  • Multi-Platform SIMD: Automatic detection and use of SSE2, AVX2, AVX512, NEON
  • Comprehensive Operations: Basic arithmetic, advanced math, statistics, comparisons
  • Performance Optimized: Hand-tuned intrinsics with scalar fallbacks
  • Type Safe: Compile-time platform feature detection
  • No-std Compatible: Supports embedded and constrained environments
  • Extensive Testing: Comprehensive test coverage with accuracy verification

§Architecture

SIMD Vector Framework
├── Basic Operations (dot product, norms, fundamentals)
├── Arithmetic Operations (add, multiply, FMA, element-wise)
├── Comparison Operations (min/max, logical operations)
├── Math Functions (trigonometric, exponential functions)
├── Statistics Operations (mean, histogram, quantile)
└── Platform Intrinsics (SSE2, AVX2, AVX512, NEON)

§Usage Examples

use sklears_simd::vector::{dot_product, norm_l2, add_vec};

// Basic vector operations
let a = vec![1.0, 2.0, 3.0, 4.0];
let b = vec![5.0, 6.0, 7.0, 8.0];

// SIMD-optimized dot product
let dot = dot_product(&a, &b);

// L2 norm computation
let norm = norm_l2(&a);

// Element-wise addition
let mut result = vec![0.0; a.len()];
add_vec(&a, &b, &mut result);

Re-exports§

pub use arithmetic_ops::abs_vec;
pub use arithmetic_ops::add_vec;
pub use arithmetic_ops::divide_vec;
pub use arithmetic_ops::fma;
pub use arithmetic_ops::multiply_vec;
pub use arithmetic_ops::neg_vec;
pub use arithmetic_ops::reciprocal_vec;
pub use arithmetic_ops::scale_vec;
pub use arithmetic_ops::square_vec;
pub use arithmetic_ops::subtract_vec;
pub use basic_operations::cosine_similarity;
pub use basic_operations::dot_product;
pub use basic_operations::euclidean_distance;
pub use basic_operations::norm_l1;
pub use basic_operations::norm_l2;
pub use comparison_ops::and_vec;
pub use comparison_ops::eq_vec;
pub use comparison_ops::ge_vec;
pub use comparison_ops::gt_vec;
pub use comparison_ops::le_vec;
pub use comparison_ops::lt_vec;
pub use comparison_ops::ne_vec;
pub use comparison_ops::not_vec;
pub use comparison_ops::or_vec;
pub use comparison_ops::xor_vec;
pub use intrinsics::detect_simd_capabilities;
pub use intrinsics::optimal_chunk_size;
pub use intrinsics::simd_width_f32;
pub use intrinsics::F32x4;
pub use intrinsics::SimdCapabilities;
pub use math_functions::cos_vec;
pub use math_functions::exp_vec;
pub use math_functions::ln_vec;
pub use math_functions::pow_vec;
pub use math_functions::sin_vec;
pub use math_functions::sqrt_vec;
pub use math_functions::tan_vec;
pub use statistics_ops::dot_product as stats_dot_product;
pub use statistics_ops::max_vec;
pub use statistics_ops::mean_vec;
pub use statistics_ops::min_max_vec;
pub use statistics_ops::min_vec;
pub use statistics_ops::norm_l1 as stats_norm_l1;
pub use statistics_ops::norm_l2 as stats_norm_l2;
pub use statistics_ops::norm_l2_squared;
pub use statistics_ops::product_vec;
pub use statistics_ops::std_dev_vec;
pub use statistics_ops::sum_vec;
pub use statistics_ops::variance_vec;
pub use statistics_ops::sum_vec as sum;
pub use arithmetic_ops::scale_vec_inplace as scale;
pub use statistics_ops::mean_vec as mean;
pub use statistics_ops::min_max_vec as min_max;
pub use statistics_ops::variance_vec as variance;
pub use basic_operations::norm_l2 as norm;
pub use arithmetic_ops::add_vec as add_simd;
pub use arithmetic_ops::fma as fma_simd;
pub use basic_operations::cross_product;
pub use basic_operations::outer_product;

Modules§

accuracy
Accuracy verification utilities for approximation functions
arithmetic_ops
Auto-generated module structure
basic_operations
Basic SIMD Vector Operations
benchmarks
Performance benchmarking utilities for SIMD operations
comparison_ops
Auto-generated module structure
constants
Export commonly used constants
intrinsics
Low-Level SIMD Intrinsics Wrapper
math_functions
SIMD Vector Mathematical Functions
statistics_ops
SIMD Vector Statistical and Reduction Operations
utils
Utility functions for vector operations

Structs§

PlatformInfo
Platform-specific feature detection and optimization
SimdConfig
SIMD vector operations configuration

Functions§

allocate_aligned_vec
Optimized memory allocation for SIMD vectors
detect_platform_info
Detect platform capabilities and optimization parameters
get_simd_config
Get current SIMD configuration
is_properly_aligned
Check if vector is properly aligned for SIMD operations
set_simd_config
Set global SIMD configuration