00001 #include <cmath>
00002 using namespace std;
00003
00004 class Comp {
00005 public:
00006 Comp(double tolerance) : tolerance(tolerance), n(0), sum(0), sum2(0) {}
00007 bool comp(double f1, double f2) {
00008 double diff = f1 - f2;
00009 ++n;
00010 sum += diff;
00011 sum2 += diff * diff;
00012 return (fabs(diff) > tolerance);
00013 }
00014
00015 double mean() {return sum/n;}
00016 double stddev() {return sqrt(sum2/n - mean() * mean());}
00017 bool setTolerance(double tolerance) {
00018 if (n==0) {
00019 this->tolerance = tolerance;
00020 return true;
00021 }
00022 return false;
00023 }
00024
00025 private:
00026 double tolerance;
00027 int n;
00028 double sum;
00029 double sum2;
00030 };