view example/fft/spe/spinFact.cc @ 1813:d7973604e81f draft

fix memin size
author kkb
date Thu, 12 Dec 2013 18:34:16 +0900
parents 786ab4ad682e
children
line wrap: on
line source

#include <math.h>
#include "spinFact.h"
#ifdef __APPLE__
#include <OpenCL/opencl.h>
#else
#include <CL/cl.h>
#endif

#define PI 3.14159265358979323846
#define PI_2 1.57079632679489661923

SchedDefineTask1(spinFact,spinFact);

static int
spinFact(SchedTask* s,void* rbuf,void* wbuf)
{
    int* n = (int*)s->get_input(rbuf,0);
    cl_float2* w = (cl_float2*)s->get_output(wbuf,0);
    unsigned int i = (unsigned int)s->get_cpuid();
    cl_float2 angle;
    angle.hi = (float)(2*i*PI/(float)n[0]);
    angle.lo = (float)((2*i*PI/(float)n[0]) + PI_2);

    w[i].hi = cos(angle.hi);
    w[i].lo = cos(angle.lo);

    return 0;
}