25#ifdef NUMERICS_HAS_OMP
29 #pragma omp parallel for reduction(+:s) schedule(static)
30 for (
idx i = 0; i < n; ++i) {
48#ifdef NUMERICS_HAS_OMP
52 #pragma omp parallel for reduction(max:mx) schedule(static)
53 for (
idx i = 0; i < n; ++i) {
54 const real v = std::abs(xd[i]);
74#ifdef NUMERICS_HAS_OMP
78 #pragma omp parallel for reduction(+:s) schedule(static)
79 for (
idx i = 0; i < n; ++i) {
constexpr idx size() const noexcept
NUM_K_AINLINE real l1_norm(const real *NUM_K_RESTRICT x, idx n) noexcept
L1 norm: sum |x[i]|.
NUM_K_AINLINE real linf_norm(const real *NUM_K_RESTRICT x, idx n) noexcept
L-infinity norm: max |x[i]|.
NUM_K_AINLINE real sum(const real *NUM_K_RESTRICT x, idx n) noexcept
Scalar sum: return sum x[i].
real l1_norm(const Vector &x, seq_t) noexcept
Sequential: calls raw::l1_norm (routes to cblas_dasum when BLAS available; otherwise auto-vectorizabl...
real sum(const Vector &x, seq_t) noexcept
Sequential: auto-vectorizable summation loop (no BLAS equivalent).
real linf_norm(const Vector &x, seq_t) noexcept
Sequential: calls raw::linf_norm (routes to cblas_idamax when BLAS available; otherwise plain max loo...
Tier-1 kernel: raw-pointer, inline, zero-overhead inner loops.
Scalar reduction kernels (namespace num::kernel::reduce)
Parallel execution policy tag. Activates OMP parallel-for / reduction constructs when NUMERICS_HAS_OM...
Sequential execution policy tag. Guarantees no OMP parallel regions; safe to call inside an existing ...