view example/fft/gpu/spinFact.cc @ 1731:dc7dd1eaf6de draft

add file
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Thu, 31 Oct 2013 21:07:30 +0900
parents
children
line wrap: on
line source

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

#define PI 3.14159265358979323846
#define PI_2 1.57079632679489661923

SchedDefineTask1(spinFact,spinFact);

static int
spinFact(SchedTask* s,void* rbuf,void* wbuf)
{
    cl_float2* w = (cl_float2*)s->get_outputAddr(0);

    unsigned long i = s->x; // (unsigned long)s->get_param(0);
    
    long n = (long)s->get_param(3);

    cl_float2 angle;
    angle.x = (float)(2*i*PI/(float)n);
    angle.y = (float)((2*i*PI/(float)n) + PI_2);

    w[i].x = cos(angle.x);
    w[i].y = cos(angle.y);

    return 0;
}