StatErrEst.h
Go to the documentation of this file.00001 #ifndef CMTERREST_H_
00002 #define CMTERREST_H_
00003 #include <boost/function.hpp>
00004 #include <vector>
00005
00006 namespace gplib
00007 {
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 template<class SampleGenerator>
00019 class StatErrEst
00020 {
00021 private:
00022
00023 SampleGenerator Generator;
00024
00025 void MakeSamples()
00026 {
00027 Samples.reserve(nrealizations);
00028 std::generate_n(back_inserter(Samples), nrealizations, Generator);
00029 }
00030
00031 virtual void CalcErrors_Imp(double &m, double &v) = 0;
00032 protected:
00033
00034 int nrealizations;
00035
00036 std::vector<double> Samples;
00037 public:
00038
00039 std::vector<double> &GetSamples()
00040 {
00041 return Samples;
00042 }
00043
00044 void CalcErrors(double &m, double &v)
00045 {
00046 MakeSamples();
00047 CalcErrors_Imp(m, v);
00048 }
00049
00050 StatErrEst(const int nsamples, SampleGenerator TheGenerator) :
00051 Generator(TheGenerator), nrealizations(nsamples)
00052 {
00053 }
00054 ;
00055 virtual ~StatErrEst()
00056 {
00057 }
00058 ;
00059 };
00060
00061 }
00062 #endif