detdist.cpp

Go to the documentation of this file.
00001 #include "MTTensor.h"
00002 #include <iostream>
00003 #include <complex>
00004 
00005 #include "Jacknife.h"
00006 #include "Bootstrap.h"
00007 #include "MTSampleGenerator.h"
00008 #include "ArraySampleGenerator.h"
00009 using namespace std;
00010 int main()
00011 {
00012         const complex<double> xx(0.0,0.0);
00013         const complex<double> xy(0.0555,0.0402);
00014         const complex<double> yx(-0.0736,-0.0695);
00015         const complex<double> yy(-0.0,-0.0);
00016         MTTensor TestData(xx,xy,yx,yy);
00017         
00018         const double noiselevel = 0.1;
00019         TestData.SetErrors(abs(xx)*noiselevel,abs(xy)*noiselevel,abs(yx)*noiselevel,abs(yy)*noiselevel);
00020         const int nsamples = 1000;
00021         MTSampleGenerator Generator(&MTTensor::GetRhoxy,TestData);
00022         gplib::rvec array(nsamples);
00023         
00024         std::generate_n(array.begin(),nsamples,Generator);
00025         //copy(array.begin(),array.end(),ostream_iterator<double>(cout,"\n"));
00026         ArraySampleGenerator ArrGen(array);
00027         Jacknife<MTSampleGenerator> JackEst(nsamples,Generator);
00028         Bootstrap<ArraySampleGenerator> ArrayEst(nsamples,ArrGen);
00029         Bootstrap<MTSampleGenerator> BootEst(nsamples,Generator);
00030         
00031         double jackmean, jackvar, bootmean, bootvar, arrmean, arrvar;
00032         JackEst.CalcErrors(jackmean,jackvar);
00033         BootEst.CalcErrors(bootmean,bootvar);
00034         ArrayEst.CalcErrors(arrmean,arrvar);
00035         cout << "Jm: " << jackmean << " Jv: " << jackvar << endl;
00036         cout <<" Bm: " << bootmean << " Bv: " << bootvar << std::endl;
00037         cout <<" Am: " << arrmean << " Av: " << arrvar << std::endl;
00038         //copy(ArrayEst.GetSamples().begin(),ArrayEst.GetSamples().end(),ostream_iterator<double>(cout,"\n"));
00039 }

Generated on Fri Jul 4 15:30:20 2008 for GPLIB++ by  doxygen 1.5.5