PSCF v1.1
LinearAlgebra.h
1#ifndef PSPG_LINEAR_ALGEBRA_H
2#define PSPG_LINEAR_ALGEBRA_H
3
4#include "GpuTypes.h"
5
6namespace Pscf {
7namespace Pspg {
8
14__global__ void subtractUniform(cudaReal* result, cudaReal rhs, int size);
15
16__global__ void addUniform(cudaReal* result, cudaReal rhs, int size);
17
18__global__ void pointWiseSubtract(cudaReal* result, const cudaReal* rhs, int size);
19
20__global__ void pointWiseSubtractFloat(cudaReal* result, const float rhs, int size);
21
22__global__ void pointWiseBinarySubtract(const cudaReal* a, const cudaReal* b, cudaReal* result, int size);
23
24__global__ void pointWiseAdd(cudaReal* result, const cudaReal* rhs, int size);
25
26__global__ void pointWiseBinaryAdd(const cudaReal* a, const cudaReal* b, cudaReal* result, int size);
27
28__global__ void pointWiseAddScale(cudaReal* result, const cudaReal* rhs, double scale, int size);
29
30__global__ void inPlacePointwiseMul(cudaReal* a, const cudaReal* b, int size);
31
32__global__ void pointWiseBinaryMultiply(const cudaReal* a, const cudaReal* b, cudaReal* result, int size);
33
34__global__ void assignUniformReal(cudaReal* result, cudaReal uniform, int size);
35
36__global__ void assignReal(cudaReal* result, const cudaReal* rhs, int size);
37
38__global__ void assignExp(cudaReal* exp, const cudaReal* w, double constant, int size);
39
40__global__ void scaleReal(cudaReal* result, double scale, int size);
41
42
45}
46}
47#endif
C++ namespace for polymer self-consistent field theory (PSCF).