numerics 0.1.0
Loading...
Searching...
No Matches
num::kernel::array Namespace Reference

Functions

void 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 axpby (real a, const Vector &x, real b, Vector &y, par_t)
 Parallel: y[i] = a*x[i] + b*y[i].
 
void axpby (real a, const Vector &x, real b, Vector &y)
 
void 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].
 
void axpbyz (real a, const Vector &x, real b, const Vector &y, Vector &z, par_t)
 Parallel: z[i] = a*x[i] + b*y[i].
 
void axpbyz (real a, const Vector &x, real b, const Vector &y, Vector &z)
 
template<typename T , typename F >
void map (BasicVector< T > &x, F &&f)
 In-place elementwise map: x[i] = f(x[i])
 
template<typename T , typename F >
void zip_map (const BasicVector< T > &x, const BasicVector< T > &y, BasicVector< T > &z, F &&f)
 Fused binary map: z[i] = f(x[i], y[i])
 
template<typename T , typename F >
reduce (const BasicVector< T > &x, T init, F &&f)
 Single-pass left fold: f(f(f(init, x[0]), x[1]), ..., x[n-1])
 

Function Documentation

◆ axpby() [1/3]

void num::kernel::array::axpby ( real  a,
const Vector x,
real  b,
Vector y 
)
inline

Definition at line 17 of file array.hpp.

References axpby().

◆ axpby() [2/3]

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].

Definition at line 13 of file array.cpp.

References axpby(), num::BasicVector< T >::data(), and num::BasicVector< T >::size().

◆ axpby() [3/3]

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)

Definition at line 9 of file array.cpp.

References num::kernel::raw::axpby().

Referenced by axpby(), and axpby().

◆ axpbyz() [1/3]

void num::kernel::array::axpbyz ( real  a,
const Vector x,
real  b,
const Vector y,
Vector z 
)
inline

Definition at line 27 of file array.hpp.

References axpbyz().

◆ axpbyz() [2/3]

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].

Definition at line 31 of file array.cpp.

References axpbyz(), num::BasicVector< T >::data(), and num::BasicVector< T >::size().

◆ axpbyz() [3/3]

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].

Definition at line 27 of file array.cpp.

References num::kernel::raw::axpbyz().

Referenced by axpbyz(), and axpbyz().

◆ map()

template<typename T , typename F >
void num::kernel::array::map ( BasicVector< T > &  x,
F &&  f 
)

In-place elementwise map: x[i] = f(x[i])

Definition at line 33 of file array.hpp.

References num::BasicVector< T >::data(), and num::BasicVector< T >::size().

◆ reduce()

template<typename T , typename F >
T num::kernel::array::reduce ( const BasicVector< T > &  x,
init,
F &&  f 
)

Single-pass left fold: f(f(f(init, x[0]), x[1]), ..., x[n-1])

Definition at line 52 of file array.hpp.

References num::BasicVector< T >::data(), reduce(), and num::BasicVector< T >::size().

Referenced by reduce().

◆ zip_map()

template<typename T , typename F >
void num::kernel::array::zip_map ( const BasicVector< T > &  x,
const BasicVector< T > &  y,
BasicVector< T > &  z,
F &&  f 
)

Fused binary map: z[i] = f(x[i], y[i])

Definition at line 43 of file array.hpp.

References num::BasicVector< T >::size().