#include #include #include #ifdef __APPLE__ #include #else #include #endif #include "pgm.h" #define PI 3.14159265358979 #define MAX_SOURCE_SIZE (0x100000) #define AMP(a, b) (sqrt((a)*(a)+(b)*(b))) cl_device_id device_id = NULL; cl_context context = NULL; cl_command_queue queue = NULL; cl_program program = NULL; enum Mode { forward = 0, inverse = 1 }; int setWorkSize(size_t* gws, size_t* lws, cl_int x, cl_int y) { switch(y) { case 1: gws[0] = x; gws[1] = 1; lws[0] = 1; lws[1] = 1; break; default: gws[0] = x; gws[1] = y; lws[0] = 1; lws[1] = 1; break; } return 0; } int fftCore(cl_mem dst, cl_mem src, cl_mem spin, cl_int m, enum Mode direction) { cl_int ret; cl_int iter; cl_uint flag; cl_int n = 1<