BIE |
/home/weinberg/src/BIE/include/EnsembleStat.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef EnsembleStat_h 00004 #define EnsembleStat_h 00005 00006 #include "Ensemble.h" 00007 00008 #include "Serializable.h" 00009 00010 00011 using namespace std; 00012 00013 namespace BIE { 00014 00015 //+ CLICLASS EnsembleStat SUPER Ensemble [1] 00024 class EnsembleStat : public Ensemble 00025 { 00026 protected: 00028 vector<int> icut; 00029 00031 vector< vector<int> > mcut; 00032 00034 vector<int> mcum; 00035 00037 bool var_computed; 00038 00040 vector< vector<double> > vmean; 00041 vector< vector< vector<double> > > mmean; 00042 00044 vector< vector<double> > vvar; 00045 vector< vector< vector<double> > > mvar; 00046 00048 Normal * normal; 00049 00053 double factor; 00054 00055 00056 public: 00057 00059 static int minsub; 00060 00061 //+ CLICONSTR 00063 EnsembleStat(); 00064 00065 //+ CLICONSTR int int 00070 EnsembleStat(int nmix, int ndim); 00071 00072 //+ CLICONSTR int int int int string int 00082 EnsembleStat(int nmix, int ndim, 00083 int level, int nburn, string filename, int keypos); 00084 00086 EnsembleStat(const EnsembleStat&); 00087 00089 ~EnsembleStat(); 00090 00091 //+ CLIMETHOD void Reset int int 00093 void Reset(int nmix, int ndim); 00094 00095 //+ CLIMETHOD void Reset int int int int string int 00097 void Reset(int nmix, int ndim, 00098 int level, int nburn, string filename, int keypos); 00099 00100 //+ CLIMETHOD void setDimensions int int 00102 void setDimensions(int nmix, int ndim); 00103 00109 vector<Matrix> covar; 00110 00117 vector< vector<Matrix> > covarM; 00118 00120 vector<Matrix> Teigen; 00121 00123 vector< vector<Matrix> > TeigeM; 00124 00129 00130 vector<Matrix> eigen; 00131 00133 vector< vector<Matrix> > eigenM; 00134 00136 vector<Vector> mean; 00137 00139 vector< vector<Vector> > meanM; 00140 00142 vector<Vector> evals; 00143 00145 vector< vector<Vector> > evalsM; 00146 00148 vector<Vector> Tmean; 00149 00151 vector< vector<Vector> > TmeanM; 00152 00153 //+ CLIMETHOD void ComputeDistribution 00154 //+ CLIMETHOD void ComputeDistribution int 00161 void ComputeDistribution(); 00162 void ComputeDistribution(int n) { burnIn=n; ComputeDistribution(); } 00163 void ComputeDistributionMarginal(ostream& out); 00164 00166 int trim_location(int m) { return icut[m]; } 00167 00169 int trim_location_marginal(int m, int n) { return mcut[m][n]; } 00170 00172 EnsembleStat* New() { 00173 return new EnsembleStat(M, N); 00174 } 00175 00177 double PDF(State&); 00178 00180 double logPDF(State&); 00181 00185 double logPDFMarginal(int m, int n, vector<double>& V); 00186 00188 double PDF(int, State&); 00189 00191 vector<double> lower(void); 00192 00194 vector<double> upper(void); 00195 00197 vector<double> Mean(int m); 00198 00200 vector<double> StdDev(int m); 00201 00203 vector<double> Moments(int m, int k); 00204 00206 vector<double> Width(int m) { return StdDev(m); } 00207 00209 vector<double> Sample(int m); 00210 00212 double SampleOne(int m, int j); 00213 00215 vector<double> StdDevMarginal(int m, int n); 00216 00218 vector<double> MeanMarginal(int m, int n); 00219 00221 vector<double> SampleMarginal(int m, int n); 00222 00224 vector<double> WidthMarginal(int m, int n) { return StdDevMarginal(m, n); } 00225 00227 00228 00229 void PrintDiag(ostream& out); 00231 void PrintDiag(string& outfile); 00232 00233 // AUTO GENERATED BY ../persistence/autopersist.py 00234 private: 00235 friend class boost::serialization::access; 00236 template<class Archive> 00237 void serialize(Archive & ar, const unsigned int version) { 00238 this->pre_serialize(ar, version); 00239 try { 00240 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Ensemble); 00241 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00242 } 00243 try { 00244 ar & BOOST_SERIALIZATION_NVP(icut); 00245 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00246 } 00247 try { 00248 ar & BOOST_SERIALIZATION_NVP(mcut); 00249 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00250 } 00251 try { 00252 ar & BOOST_SERIALIZATION_NVP(mcum); 00253 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00254 } 00255 try { 00256 ar & BOOST_SERIALIZATION_NVP(var_computed); 00257 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00258 } 00259 try { 00260 ar & BOOST_SERIALIZATION_NVP(vmean); 00261 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00262 } 00263 try { 00264 ar & BOOST_SERIALIZATION_NVP(mmean); 00265 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00266 } 00267 try { 00268 ar & BOOST_SERIALIZATION_NVP(vvar); 00269 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00270 } 00271 try { 00272 ar & BOOST_SERIALIZATION_NVP(mvar); 00273 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00274 } 00275 try { 00276 ar & BOOST_SERIALIZATION_NVP(normal); 00277 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00278 } 00279 try { 00280 ar & BOOST_SERIALIZATION_NVP(factor); 00281 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00282 } 00283 try { 00284 ar & BOOST_SERIALIZATION_NVP(minsub); 00285 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00286 } 00287 try { 00288 ar & BOOST_SERIALIZATION_NVP(covar); 00289 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00290 } 00291 try { 00292 ar & BOOST_SERIALIZATION_NVP(covarM); 00293 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00294 } 00295 try { 00296 ar & BOOST_SERIALIZATION_NVP(Teigen); 00297 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00298 } 00299 try { 00300 ar & BOOST_SERIALIZATION_NVP(TeigeM); 00301 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00302 } 00303 try { 00304 ar & BOOST_SERIALIZATION_NVP(eigen); 00305 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00306 } 00307 try { 00308 ar & BOOST_SERIALIZATION_NVP(eigenM); 00309 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00310 } 00311 try { 00312 ar & BOOST_SERIALIZATION_NVP(mean); 00313 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00314 } 00315 try { 00316 ar & BOOST_SERIALIZATION_NVP(meanM); 00317 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00318 } 00319 try { 00320 ar & BOOST_SERIALIZATION_NVP(evals); 00321 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00322 } 00323 try { 00324 ar & BOOST_SERIALIZATION_NVP(evalsM); 00325 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00326 } 00327 try { 00328 ar & BOOST_SERIALIZATION_NVP(Tmean); 00329 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00330 } 00331 try { 00332 ar & BOOST_SERIALIZATION_NVP(TmeanM); 00333 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00334 } 00335 this->post_serialize(ar, version); 00336 } 00337 00338 }; 00339 } // namespace BIE 00340 00341 BIE_CLASS_TYPE_INFO(BIE::EnsembleStat) 00342 BIE_CLASS_EXPORT_KEY(BIE::EnsembleStat) 00343 #endif 00344 00345 00346 00347 00348 00349 00350 00351 Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|