1
#define DOUBLE(x) ((double)(x))
3
static __global__ void vecMul(cuComplex *a, cuComplex *b, int size) {
6
int i = threadIdx.x + blockIdx.x*size;
8
tmp = a[i].x * b[i].x - a[i].y * b[i].y;
9
a[i].y = a[i].x * b[i].y + a[i].y * b[i].x;
14
static __global__ void vecPack(cufftReal *a, int asize, uint8_t *b, int bsize) {
15
int i = threadIdx.x + blockIdx.x*bsize;
17
a[threadIdx.x + asize*blockIdx.x] = b[i];
21
static __global__ void vecCompute(
22
uint16_t *items, float *res,
23
cufftReal *corr, float corr_scale,
24
float *lsum, float lsum_scale,
25
float *denom, float denom_scale
27
int pos = items[threadIdx.x + blockIdx.x*BLOCK_SIZE];//correct (row/column)?
28
res[pos] = (corr[pos] * corr_scale - lsum[pos]*lsum_scale) / (denom[pos] * denom_scale);