12345678910111213141516171819202122 |
- __kernel void lamino_c( __global float * in, __global float * flt, __global float * out)
- {
- const int idx = get_global_id(0);
- const int idy = get_global_id(1);
- const int index = idy * get_global_size(0) + idx;
- const uchar m = idx % 2;
- float result = in[index] * flt[index - m];
- if (m == 0) // real part
- {
- /* out[index]= in[index] * flt[index] - in[index+1] * flt[index+1]; */
- result -= in[index + 1] * flt[index+1];
- }
- else // imaginary part
- {
- /* out[index]= in[index] * flt[index - 1] + in[index-1] * flt[index]; */
- result += in[index - 1] * flt[index];
- }
- out[index] = result;
- }
|