40#if defined(NUMERICS_HAS_BLAS)
48#if defined(NUMERICS_HAS_OMP)
58#if defined(NUMERICS_HAS_BLAS)
66#if defined(NUMERICS_HAS_BLAS)
68#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/LAPACKE – OpenBLAS, MKL, Apple Accelerate
@ seq
Naive textbook loops – always available.
constexpr Backend best_backend
Best backend for memory-bound vector ops: blas > omp > blocked.
constexpr bool has_blas
True when a BLAS/cblas library was found at configure time.
constexpr Backend default_backend
constexpr bool has_omp
True when OpenMP was found at configure time.
constexpr Backend blocked