00001 #include <vector>
00002 #include <iostream>
00003 #include <algorithm>
00004 #include <boost/random/lagged_fibonacci.hpp>
00005 #include <boost/random/normal_distribution.hpp>
00006 #include <boost/random/variate_generator.hpp>
00007 #include "statutils.h"
00008 using namespace std;
00009
00010 int main()
00011 {
00012 const double premean = 12.3;
00013 const double prestd = 0.5;
00014 boost::lagged_fibonacci607 generator(static_cast<unsigned int>(std::time(0)));
00015 boost::normal_distribution<> Norm_dist(premean,prestd);
00016 boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > Sampler(generator, Norm_dist);
00017 vector<double> Samples;
00018 const int nsamples = 1000000;
00019 generate_n(back_inserter(Samples),nsamples,Sampler);
00020 cout << "Mean: " << Mean(Samples.begin(),Samples.end())<< endl;
00021 cout << "Var: " << Variance(Samples.begin(),Samples.end())<< endl;
00022 cout << "Err: " << MeanErr(Samples.begin(),Samples.end())<< endl;
00023 cout << "StdDev: " << StdDev(Samples.begin(),Samples.end())<< endl;
00024 }