Advanced Multi-Physics (AMP)
On-Line Documentation
FunctionTable.h
Go to the documentation of this file.
1#ifndef included_AMP_FunctionTable
2#define included_AMP_FunctionTable
3
4
5#include "AMP/utils/ArraySize.h"
6
7#include <functional>
8
9
10namespace AMP {
11
12
19template<class TYPE>
20class FunctionTable final
21{
22public:
23 typedef TYPE value_type;
24 template<class TYPE2>
26
27public:
33 static void rand( size_t N, TYPE *x );
34
44 template<typename LAMBDA>
45 static TYPE reduce( LAMBDA op, size_t N, const TYPE *A, TYPE initialValue );
46
57 template<typename LAMBDA>
58 static TYPE reduce( LAMBDA op, size_t N, const TYPE *A, const TYPE *B, TYPE initialValue );
59
68 template<typename LAMBDA>
69 static void transform( LAMBDA fun, size_t N, const TYPE *x, TYPE *y );
70
80 template<typename LAMBDA>
81 static void transform( LAMBDA fun, size_t N, const TYPE *x, const TYPE *y, TYPE *z );
82
88 static TYPE min( size_t N, const TYPE *x );
89
95 static TYPE max( size_t N, const TYPE *x );
96
102 static TYPE sum( size_t N, const TYPE *x );
103
113 static void multiply( const ArraySize &sa,
114 const TYPE *a,
115 const ArraySize &sb,
116 const TYPE *b,
117 const ArraySize &sc,
118 TYPE *c );
119
126 static void scale( size_t N, TYPE x, TYPE *y );
127
134 static void px( size_t N, TYPE x, TYPE *y );
135
142 static void px( size_t N, const TYPE *x, TYPE *y );
143
150 static void mx( size_t N, TYPE x, TYPE *y );
151
158 static void mx( size_t N, const TYPE *x, TYPE *y );
159
167 static void axpy( TYPE alpha, size_t N, const TYPE *x, TYPE *y );
168
177 static void axpby( TYPE alpha, size_t N, const TYPE *x, TYPE beta, TYPE *y );
178
190 static void gemm( TYPE alpha,
191 const ArraySize &sa,
192 const TYPE *A,
193 const ArraySize &sb,
194 const TYPE *B,
195 TYPE beta,
196 const ArraySize &sc,
197 TYPE *C );
198
199
207 static bool equals( size_t N, const TYPE *A, const TYPE *B, TYPE tol );
208
209
210 /* Specialized Functions */
211
218 static void transformReLU( size_t N, const TYPE *A, TYPE *B );
219
226 static void transformAbs( size_t N, const TYPE *A, TYPE *B );
227
234 static void transformTanh( size_t N, const TYPE *A, TYPE *B );
235
242 static void transformHardTanh( size_t N, const TYPE *A, TYPE *B );
243
250 static void transformSigmoid( size_t N, const TYPE *A, TYPE *B );
251
258 static void transformSoftPlus( size_t N, const TYPE *A, TYPE *B );
259
260private:
261 FunctionTable() = delete;
262};
263
264
265} // namespace AMP
266
267#endif
Simple class to store the array dimensions.
Definition ArraySize.h:138
static void transformAbs(size_t N, const TYPE *A, TYPE *B)
static void axpy(TYPE alpha, size_t N, const TYPE *x, TYPE *y)
static TYPE reduce(LAMBDA op, size_t N, const TYPE *A, TYPE initialValue)
static void axpby(TYPE alpha, size_t N, const TYPE *x, TYPE beta, TYPE *y)
static TYPE min(size_t N, const TYPE *x)
static void transformSoftPlus(size_t N, const TYPE *A, TYPE *B)
static void px(size_t N, const TYPE *x, TYPE *y)
static TYPE max(size_t N, const TYPE *x)
static void transformSigmoid(size_t N, const TYPE *A, TYPE *B)
static void mx(size_t N, const TYPE *x, TYPE *y)
static void gemm(TYPE alpha, const ArraySize &sa, const TYPE *A, const ArraySize &sb, const TYPE *B, TYPE beta, const ArraySize &sc, TYPE *C)
static void scale(size_t N, TYPE x, TYPE *y)
static void mx(size_t N, TYPE x, TYPE *y)
static void transform(LAMBDA fun, size_t N, const TYPE *x, TYPE *y)
static bool equals(size_t N, const TYPE *A, const TYPE *B, TYPE tol)
static void transformTanh(size_t N, const TYPE *A, TYPE *B)
FunctionTable()=delete
static TYPE reduce(LAMBDA op, size_t N, const TYPE *A, const TYPE *B, TYPE initialValue)
static void transform(LAMBDA fun, size_t N, const TYPE *x, const TYPE *y, TYPE *z)
static void transformReLU(size_t N, const TYPE *A, TYPE *B)
static void px(size_t N, TYPE x, TYPE *y)
static void multiply(const ArraySize &sa, const TYPE *a, const ArraySize &sb, const TYPE *b, const ArraySize &sc, TYPE *c)
static void rand(size_t N, TYPE *x)
static void transformHardTanh(size_t N, const TYPE *A, TYPE *B)
static TYPE sum(size_t N, const TYPE *x)



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:41.
Comments on this page