26 #if defined(VEC_SIZE) && defined(DATA_TYPE) && defined(EPSILON) && defined(WIDTH)
65 #ifdef MEANSTDNORM_HALF
80 #ifdef MEANSTDNORM_HALF
85 sum_sq += data * data;
94 #define sum_sq sum_sq.s0
95 #endif // VEC_SIZE > 1
100 DATA_TYPE data = *((__global DATA_TYPE *)
offset(&in, i, 0));
103 sum_sq += data * data;
106 DATA_TYPE mean = sum /
WIDTH;
107 DATA_TYPE var = (sum_sq /
WIDTH) - (mean * mean);
108 DATA_TYPE stddev_inv = 1.f / sqrt(var + EPSILON);
117 res = (data - mean) * stddev_inv;
119 (res, 0, (__global DATA_TYPE *)
offset(&out, i, 0));
121 for(; i <
WIDTH; ++i)
123 DATA_TYPE data = *((__global DATA_TYPE *)
offset(&in, i, 0));
125 *((__global DATA_TYPE *)
offset(&out, i, 0)) = (data - mean) * stddev_inv;