BasicStats::BasicStats(DVec &raw) { this->n = raw.size(); double fcount = raw.size(); DVec data(raw.begin(), raw.end()); std::sort(data.begin(), data.end()); this->min = data.front(); this->max = data.back(); this->median = data.at(data.size() / 2); double s = 0; for (decimal_t v : data) s += v; this->mean = s / fcount; s = 0; for (decimal_t v : data) s += ::pow(v - this->mean, 2); this->stdev = ::sqrt(s / fcount); }