17double mean(
const std::vector<T> data)
24 double sum =
static_cast<double>(std::accumulate(data.begin(), data.end(), 0.0));
25 return sum /
static_cast<double>(data.size());
40double stdevSample(
const std::vector<T> data)
42 double n =
static_cast<double>(data.size());
49 double data_mean = mean(data);
51 double sq_residuals = std::accumulate(
52 data.begin(), data.end(), 0.0, [data_mean](
double res,
double val) {
53 return res + std::pow(static_cast<double>(val) - data_mean, 2);
56 return std::sqrt(sq_residuals / (n - 1));