1#ifndef included_AMP_DeviceOperationsHelpers_h
2#define included_AMP_DeviceOperationsHelpers_h
6namespace LinearAlgebra {
14template<
typename TYPE>
20 static void scale( TYPE alpha,
size_t N,
const TYPE *x, TYPE *y );
21 static void scale( TYPE alpha,
size_t N, TYPE *x );
22 static void add(
size_t N,
const TYPE *x,
const TYPE *y, TYPE *z );
23 static void subtract(
size_t N,
const TYPE *x,
const TYPE *y, TYPE *z );
24 static void multiply(
size_t N,
const TYPE *x,
const TYPE *y, TYPE *z );
25 static void divide(
size_t N,
const TYPE *x,
const TYPE *y, TYPE *z );
26 static void reciprocal(
size_t N,
const TYPE *x, TYPE *y );
28 linearSum(
const TYPE alpha,
size_t N,
const TYPE *x,
const TYPE beta,
const TYPE *y, TYPE *z );
29 static void abs(
size_t N,
const TYPE *x, TYPE *z );
30 static void addScalar(
size_t N,
const TYPE *x, TYPE alpha_in, TYPE *y );
31 static void setMax(
size_t N, TYPE val, TYPE *x );
32 static void setMin(
size_t N, TYPE val, TYPE *x );
33 static TYPE
localMin(
size_t N,
const TYPE *x );
34 static TYPE
localMax(
size_t N,
const TYPE *x );
35 static TYPE
localSum(
size_t N,
const TYPE *x );
39 static TYPE
localDot(
size_t N,
const TYPE *x,
const TYPE *y );
A default set of helper functions for vector operations.
static TYPE localMinQuotient(size_t N, const TYPE *x, const TYPE *y)
static void divide(size_t N, const TYPE *x, const TYPE *y, TYPE *z)
static TYPE localL2Norm(size_t N, const TYPE *x)
static void add(size_t N, const TYPE *x, const TYPE *y, TYPE *z)
static TYPE localSum(size_t N, const TYPE *x)
static void setRandomValues(size_t N, TYPE *x)
static TYPE localMax(size_t N, const TYPE *x)
static TYPE localMaxNorm(size_t N, const TYPE *x)
static TYPE localMin(size_t N, const TYPE *x)
static void scale(TYPE alpha, size_t N, TYPE *x)
static void scale(TYPE alpha, size_t N, const TYPE *x, TYPE *y)
static void subtract(size_t N, const TYPE *x, const TYPE *y, TYPE *z)
static TYPE localL1Norm(size_t N, const TYPE *x)
static void reciprocal(size_t N, const TYPE *x, TYPE *y)
static TYPE localWrmsNorm(size_t N, const TYPE *x, const TYPE *y)
static void linearSum(const TYPE alpha, size_t N, const TYPE *x, const TYPE beta, const TYPE *y, TYPE *z)
static void addScalar(size_t N, const TYPE *x, TYPE alpha_in, TYPE *y)
static void abs(size_t N, const TYPE *x, TYPE *z)
static TYPE localDot(size_t N, const TYPE *x, const TYPE *y)
static void setMax(size_t N, TYPE val, TYPE *x)
static void multiply(size_t N, const TYPE *x, const TYPE *y, TYPE *z)
static void setMin(size_t N, TYPE val, TYPE *x)