diff options
Diffstat (limited to 'linalg_test.cu')
-rw-r--r-- | linalg_test.cu | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/linalg_test.cu b/linalg_test.cu new file mode 100644 index 0000000..c4647a7 --- /dev/null +++ b/linalg_test.cu @@ -0,0 +1,99 @@ +//-*-c-*- + +#include "linalg.h" + +extern "C" +{ + +__global__ void add(int n, float3 *a, float3 *b, float3 *out) +{ + int i; + for (i=0; i < n; i++) + out[i] = a[i] + b[i]; +} + +__global__ void addequal(int n, float3 *a, float3 *b) +{ + int i; + for (i=0; i < n; i++) + a[i] += b[i]; +} + +__global__ void sub(int n, float3 *a, float3 *b, float3 *out) +{ + int i; + for (i=0; i < n; i++) + out[i] = a[i] - b[i]; +} + +__global__ void subequal(int n, float3 *a, float3 *b) +{ + int i; + for (i=0; i < n; i++) + a[i] -= b[i]; +} + +__gloabl__ void addfloat(int n, float3 *a, float c, float3 *out) +{ + int i; + for (i=0; i < n; i++) + out[i] = a[i] + c; +} + +__global__ void addfloatequal(int n, float3 *a, float c) +{ + int i; + for (i=0; i < n; i++) + a += c; +} + +__global__ void subfloat(int n, float3 *a, float c, float3 *out) +{ + int i; + for (i=0; i < n; i++) + out[i] = a[i] - c; +} + +__global__ void subfloatequal(int n, float3 *a, float c) +{ + int i; + for (i=0; i < n; i++) + a[i] -= c; +} + +__global__ void mulfloat(int n, float3 *a, float c, float3 *out) +{ + int i; + for (i=0; i < n; i++) + out[i] = a[i]*c; +} + +__global__ void mulfloatequal(int n, float3 *a, float c) +{ + int i; + for (i=0; i < n; i++) + a *= c; +} + +__global__ void divfloat(int n, float3 *a, float c, float3 *out) +{ + int i; + for (i=0; i < n; i++) + out[i] = a[i]/c; +} + +__global__ void divfloatequal(int n, float3 *a, float c) +{ + int i; + for (i=0; i < n; i++) + a /= c; +} + +__global__ void dot(int n, float3 *a, float3 *b, float* out) +{ + int i; + for (i=0; i < n; i++) + out[i] = dot(a,b); +} + +} // extern "c" |