numerics 0.1.0
Loading...
Searching...
No Matches
array.cpp File Reference

Implementations for num::kernel::array (seq_t and par_t overloads). More...

#include "kernel/array.hpp"
#include "kernel/raw.hpp"

Go to the source code of this file.

Namespaces

namespace  num
 
namespace  num::kernel
 
namespace  num::kernel::array
 

Functions

void num::kernel::array::axpby (real a, const Vector &x, real b, Vector &y, seq_t) noexcept
 Sequential: y[i] = a*x[i] + b*y[i] (single-pass; calls raw::axpby)
 
void num::kernel::array::axpby (real a, const Vector &x, real b, Vector &y, par_t)
 Parallel: y[i] = a*x[i] + b*y[i] (OMP parallel-for; falls back to seq_t when NUMERICS_HAS_OMP is not defined)
 
void num::kernel::array::axpbyz (real a, const Vector &x, real b, const Vector &y, Vector &z, seq_t) noexcept
 Sequential: z[i] = a*x[i] + b*y[i] (single-pass; calls raw::axpbyz)
 
void num::kernel::array::axpbyz (real a, const Vector &x, real b, const Vector &y, Vector &z, par_t)
 Parallel: z[i] = a*x[i] + b*y[i] (OMP parallel-for)
 

Detailed Description

Implementations for num::kernel::array (seq_t and par_t overloads).

seq_t paths call raw:: directly (which handles BLAS dispatch internally for ops that have cblas equivalents, and uses auto-vectorizable loops otherwise).

par_t paths use OpenMP parallel-for. When NUMERICS_HAS_OMP is not defined par_t falls through to the seq_t implementation.

Definition in file array.cpp.