Cargo Features

[dependencies]
scirs2-linalg = { version = "0.1.5", default-features = false, features = ["linalg", "tensor_contraction", "simd", "autograd", "parallel", "extended-test", "python", "cuda", "opencl", "cpu-fallback", "rocm", "metal", "gpu"] }
default = linalg, simd

Default features - OxiBLAS (pure Rust) is used for all platforms

linalg default

NOTE: OpenBLAS/Netlib/Accelerate features removed - using pure Rust OxiBLAS for all platforms
Core functionality features
Linear algebra with BLAS/LAPACK bindings

Enables scirs2-core

Core dependencies - ALL numeric/array functionality from scirs2-core (SciRS2 POLICY)
NOTE: linalg feature now uses OxiBLAS (pure Rust) instead of OpenBLAS

tensor_contraction

Optional tensor contraction functionality

Affects scirs2-linalg::tensor_contraction

simd default

SIMD-accelerated operations

Enables scirs2-core

Affects simd::simd_mixed_precision_matvec_f32_f64, simd::simd_mixed_precision_matmul_f32_f64, simd::simd_mixed_precision_dot_f32_f64, elementwise::simdmatrix_add_f32, elementwise::simdmatrix_add_f64, elementwise::simdmatrix_add_inplace_f32, elementwise::simdmatrix_mul_elementwise_f32, elementwise::simdmatrix_scale_f32, gemm::GemmBlockSizes, gemm::simd_gemm_f32, gemm::simd_gemm_f64, gemm::simd_matmul_optimized_f32, gemm::simd_matmul_optimized_f64, gemm::simd_gemv_f32, gemm::simd_gemv_f64, simd_ops::simd_matvec_f32, simd_ops::simd_matvec_f64, simd_ops::simd_matmul_f32, simd_ops::simd_matmul_f64, simd_ops::simdmatrix_max_f32

autograd

Automatic differentiation support

Enables scirs2-autograd

Affects scirs2-linalg::autograd, scirs2-linalg::prelude.autograd

parallel

Parallel processing support

Enables scirs2-core

Affects f64_ops::mixed_precision_matmul_f64_parallel

extended-test

For extended precision tests

python

Python bindings support

Enables python of scirs2-core

cuda

GPU acceleration features (experimental)
NVIDIA CUDA support

Affects cuda::cuda_impl, backends::cuda, scirs2-linalg::gpu

opencl

OpenCL support

Affects backends::opencl, opencl::opencl_impl, scirs2-linalg::gpu

cpu-fallback

CPU fallback when no GPU backend available

rocm

AMD ROCm support

Affects backends::rocm, rocm::rocm_impl, scirs2-linalg::gpu

metal

Apple Metal support

Affects metal::metal_impl, backends::metal, scirs2-linalg::gpu

gpu

GPU abstraction layer - does NOT auto-enable specific backends