BIE |
/home/weinberg/src/BIE/include/ReversibleJump.h00001 // This is really -*- C++ -*- 00002 00003 00004 00005 #ifndef ReversibleJump_h 00006 #define ReversibleJump_h 00007 00008 #include "Serializable.h" 00009 00010 00011 #include <MCAlgorithm.h> 00012 00013 namespace BIE { 00014 00015 class MixturePrior; 00016 00017 //+ CLICLASS ReversibleJump SUPER MCAlgorithm 00022 class ReversibleJump : public MCAlgorithm 00023 { 00024 00025 private: 00026 bool birth_death; 00027 MixturePrior *_prior0; 00028 00029 public: 00030 00032 static double BPROB; 00033 00034 //+ CLICONSTR int double MixturePrior* 00041 ReversibleJump(int mmax, double lambda, MixturePrior *p); 00042 00044 ~ReversibleJump(); 00045 00046 00047 //+ CLIMETHOD void TestModeOn 00049 void TestModeOn(); 00050 00051 //+ CLIMETHOD void TestModeOff 00053 void TestModeOff(); 00054 00055 //+ CLIMETHOD void SetBirthProb double 00057 void SetBirthProb(double p) 00058 { 00059 BPROB = min<double>(1.0, max<double>(0.0, p)); 00060 } 00061 00063 virtual void GetNewState(Simulation* sim, Chain* ch); 00064 00066 virtual void ComputeNewState(Simulation* sim, Chain* ch); 00067 00069 virtual double ComputeCurrentState(Simulation* sim, Chain* ch); 00070 00072 virtual double ComputeState(Simulation* sim, Chain* ch); 00073 00075 virtual bool Sweep(Simulation* sim, Chain* ch); 00076 00078 virtual void PrintAlgorithmDiagnostic(Simulation* sim); 00079 00080 protected: 00081 00083 vector<double> Poisson; 00084 00086 00087 int Mmax; 00088 double Lambda; 00090 00092 int GenPoisson(); 00093 00094 // AUTO GENERATED BY ../persistence/autopersist.py 00095 protected: 00096 ReversibleJump() {} 00097 private: 00098 friend class boost::serialization::access; 00099 template<class Archive> 00100 void serialize(Archive & ar, const unsigned int version) { 00101 this->pre_serialize(ar, version); 00102 try { 00103 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(MCAlgorithm); 00104 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00105 } 00106 try { 00107 ar & BOOST_SERIALIZATION_NVP(birth_death); 00108 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00109 } 00110 try { 00111 ar & BOOST_SERIALIZATION_NVP(_prior0); 00112 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00113 } 00114 try { 00115 ar & BOOST_SERIALIZATION_NVP(BPROB); 00116 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00117 } 00118 try { 00119 ar & BOOST_SERIALIZATION_NVP(Poisson); 00120 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00121 } 00122 try { 00123 ar & BOOST_SERIALIZATION_NVP(Mmax); 00124 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00125 } 00126 try { 00127 ar & BOOST_SERIALIZATION_NVP(Lambda); 00128 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00129 } 00130 this->post_serialize(ar, version); 00131 } 00132 00133 }; 00134 00135 } 00136 BIE_CLASS_TYPE_INFO(BIE::ReversibleJump) 00137 BIE_CLASS_EXPORT_KEY(BIE::ReversibleJump) 00138 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|