//-*-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"