lamino_ft_conv.cl 663 B

12345678910111213141516171819202122
  1. __kernel void lamino_c( __global float * in, __global float * flt, __global float * out)
  2. {
  3. const int idx = get_global_id(0);
  4. const int idy = get_global_id(1);
  5. const int index = idy * get_global_size(0) + idx;
  6. const uchar m = idx % 2;
  7. float result = in[index] * flt[index - m];
  8. if (m == 0) // real part
  9. {
  10. /* out[index]= in[index] * flt[index] - in[index+1] * flt[index+1]; */
  11. result -= in[index + 1] * flt[index+1];
  12. }
  13. else // imaginary part
  14. {
  15. /* out[index]= in[index] * flt[index - 1] + in[index-1] * flt[index]; */
  16. result += in[index - 1] * flt[index];
  17. }
  18. out[index] = result;
  19. }