44 fl::size n =
mBuf.size();
48 if (two_sigma_sq == T(0)) {
53 T weighted_sum = T(0);
54 T weight_total = T(0);
56 for (fl::size i = 0; i < n; ++i) {
57 T diff =
mBuf[i] - reference;
58 T range_weight =
fl::exp(-(diff * diff) / two_sigma_sq);
59 weighted_sum = weighted_sum +
mBuf[i] * range_weight;
60 weight_total = weight_total + range_weight;
63 if (!(weight_total == T(0))) {