32 using namespace pwiz::util;
33 using namespace pwiz::math;
42 if (
os_) *
os_ <<
"***************************\n";
43 if (
os_) *
os_ <<
"testBasic()\n";
48 if (
os_) *
os_ <<
"testBasic(): success\n";
54 if (
os_) *
os_ <<
"***************************\n";
55 if (
os_) *
os_ <<
"testExactFit()\n";
57 vector< pair<double,double> > samples;
58 samples.push_back(make_pair(1,1));
59 samples.push_back(make_pair(2,3));
60 samples.push_back(make_pair(3,9));
64 if (
os_) *
os_ << p << endl;
77 if (
os_) *
os_ <<
"testExactFit(): success\n";
83 if (
os_) *
os_ <<
"***************************\n";
84 if (
os_) *
os_ <<
"testLeastSquares()\n";
86 vector< pair<double,double> > samples;
87 samples.push_back(make_pair(1,1));
88 samples.push_back(make_pair(2,3));
89 samples.push_back(make_pair(3,9));
90 samples.push_back(make_pair(0,3));
91 samples.push_back(make_pair(-1,9));
95 if (
os_) *
os_ << p << endl;
107 if (
os_) *
os_ <<
"testLeastSquares(): success\n";
113 if (
os_) *
os_ <<
"***************************\n";
114 if (
os_) *
os_ <<
"testWeightedLeastSquares()\n";
119 vector< pair<double,double> > samples;
120 samples.push_back(make_pair(0,1));
121 samples.push_back(make_pair(1,2));
122 samples.push_back(make_pair(2,5));
123 samples.push_back(make_pair(-3,10));
124 samples.push_back(make_pair(-4,17));
127 vector<double> weights;
128 for (
unsigned int i=0; i<samples.size(); i++)
130 double y = samples[i].second;
131 weights.push_back(pow(y,6)/4);
137 copy(weights.begin(), weights.end(), ostream_iterator<double>(*
os_,
" " ));
142 if (
os_) *
os_ << p << endl;
147 *
os_ <<
"coefficients: " << setprecision(14);
155 if (
os_) *
os_ <<
"testWeightedLeastSquares(): success\n";
159 int main(
int argc,
char* argv[])
165 if (argc>1 && !strcmp(argv[1],
"-v"))
os_ = &cout;
166 if (
os_) *
os_ <<
"ParabolaTest\n";