| 34 | |
| 35 | template<typename To, typename Tw> |
| 36 | void stable_mean(To *lhs, Tw *l_wt, To rhs, Tw r_wt) { |
| 37 | if (((*l_wt) != (Tw)0) || (r_wt != (Tw)0)) { |
| 38 | Tw l_scale = (*l_wt); |
| 39 | (*l_wt) += r_wt; |
| 40 | l_scale = l_scale / (*l_wt); |
| 41 | |
| 42 | Tw r_scale = r_wt / (*l_wt); |
| 43 | (*lhs) = (l_scale * *lhs) + (r_scale * rhs); |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | template<typename Ti, typename Tw, typename To, uint dim, uint DIMY> |
| 48 | class meanDimKernelSMEM { |
no outgoing calls
no test coverage detected