Skip to main content

dataset.cpp


// Class implementation part of Exercise 31 solution
// (NDE, 2014-02-19)
#include <numeric>
#include <cmath>
#include "dataset.hpp"
using namespace std;
Dataset::Dataset(ifstream& infile)
{
  double value;
  while (infile >> value) {
    data.push_back(value);
  }
}
double Dataset::mean() const
{
  double sum = accumulate(data.begin(), data.end(), 0.0);
  return sum / data.size();
}
double Dataset::stdev() const
{
  double m = mean();
  double sum = 0.0;
  vector<double>::const_iterator i = data.begin();
  for (; i != data.end(); ++i) {
    double dev = *i - m;
    sum += dev*dev;
  }
  return sqrt(sum / data.size());
}