| 157 | */ |
| 158 | template <typename IteratorType> |
| 159 | double MAD(IteratorType begin, IteratorType end, double median_of_numbers) |
| 160 | { |
| 161 | std::vector<double> diffs; |
| 162 | diffs.reserve(std::distance(begin, end)); |
| 163 | for (IteratorType it = begin; it != end; ++it) |
| 164 | { |
| 165 | diffs.push_back(fabs(*it - median_of_numbers)); |
| 166 | } |
| 167 | return median(diffs.begin(), diffs.end(), false); |
| 168 | } |
| 169 | |
| 170 | /** |
| 171 | @brief mean absolute deviation (MeanAbsoluteDeviation) |