42#if defined(NUMERICS_HAS_BLAS)
50#if defined(NUMERICS_HAS_LAPACK)
58#if defined(NUMERICS_HAS_OMP)
66#if defined(NUMERICS_HAS_SIMD)
93#if defined(NUMERICS_HAS_BLAS)
95#elif defined(NUMERICS_HAS_OMP)
97#elif defined(NUMERICS_HAS_SIMD)
125#if defined(NUMERICS_HAS_LAPACK)
127#elif defined(NUMERICS_HAS_OMP)
Backend
Selects which backend handles a linalg operation.
@ gpu
CUDA – custom kernels or cuBLAS.
@ omp
OpenMP parallel blocked loops.
@ blocked
Cache-blocked; compiler auto-vectorizes inner loops.
@ simd
Hand-written SIMD intrinsics (AVX2 or NEON)
@ blas
cblas – OpenBLAS, MKL, Apple Accelerate (Level-1/2/3)
@ lapack
LAPACKE – industry-standard factorizations, SVD, eigen.
@ seq
Naive textbook loops – always available.
constexpr Backend best_backend
constexpr Backend lapack_backend
constexpr bool has_lapack
True when LAPACKE was found at configure time.
constexpr bool has_blas
True when a BLAS/cblas library was found at configure time.
constexpr Backend default_backend
constexpr bool has_simd
True when a SIMD ISA was detected (AVX2 on x86-64, NEON on AArch64).
constexpr bool has_omp
True when OpenMP was found at configure time.
constexpr Backend blocked