oxiblas-core 0.1.0

Core traits and SIMD abstractions for OxiBLAS
Documentation

OxiBLAS Core - Foundational types and traits for OxiBLAS.

This crate provides the core infrastructure for OxiBLAS:

  • Scalar traits: Scalar, Real, ComplexScalar, Field for numeric types
  • SIMD abstraction: Custom SIMD layer via core::arch intrinsics
  • Memory management: Aligned allocation, stack-based temporaries
  • Parallelization: Work partitioning and parallel execution

Supported Types

  • f32, f64: Real floating-point numbers
  • Complex32, Complex64: Complex numbers (via num-complex)

SIMD Support

The SIMD abstraction automatically detects and uses the best available instruction set:

  • x86_64: AVX2 (256-bit), AVX512F (512-bit)
  • AArch64: NEON (128-bit), with 256-bit emulation
  • Fallback: Scalar operations for unsupported platforms

Example

use oxiblas_core::scalar::{Scalar, Field};
use oxiblas_core::simd::detect_simd_level;

// Check SIMD capability
let level = detect_simd_level();
println!("SIMD level: {:?}", level);

// Use scalar traits
let x: f64 = 3.0;
let y: f64 = 4.0;
assert_eq!(x.abs_sq() + y.abs_sq(), 25.0);