//+------------------------------------------------------------------+ //| Morlet wavelet function | //+------------------------------------------------------------------+ float Morlet(const float t) { return exp(-t*t*0.5)*cos(M_2_PI*t); } //+------------------------------------------------------------------+ //| OpenCL kernel function | //+------------------------------------------------------------------+ __kernel void Wavelet_GPU(__global float *data,int datacount,int x_size,int y_size,__global float *result) { size_t i = get_global_id(0); size_t j = get_global_id(1); float a1=(float)10e-10; float a2=(float)15.0; float da=(a2-a1)/(float)y_size; float db=((float)datacount-(float)0.0)/x_size; float a=a1+j*da; float b=0+i*db; uint norm=1; float B=(float)1.0; //Morlet float B_inv=(float)1.0/B; float a_inv=(float)1.0/a; float dt=(float)1.0; float coef=(float)0.0; if(norm==0) coef=sqrt(a_inv); else { for(int k=0; k