00001
00002
00003
00004
00005 #ifndef InitialMixturePriorPoisson_h
00006 #define InitialMixturePriorPoisson_h
00007
00008 #include <ACG.h>
00009 #include <Uniform.h>
00010 #include <Normal.h>
00011
00012 #include <InitialMixturePrior.h>
00013
00014 #include "Serializable.h"
00015
00016
00017 namespace BIE {
00018
00019
00023 class InitialMixturePriorPoisson : public InitialMixturePrior
00024 {
00025
00026 protected:
00027
00029 double Lambda;
00030
00032 vector<double> Poisson;
00033
00035 Uniform * unit;
00036
00038 int GenPoisson();
00039
00040 public:
00041
00044
00045
00047 InitialMixturePriorPoisson();
00048
00049
00051 InitialMixturePriorPoisson(int nmix, double lambda,
00052 double alpha, string pfile);
00053
00054
00056 ~InitialMixturePriorPoisson();
00057
00058
00064
00065 InitialMixturePriorPoisson* New();
00067
00069 void SamplePrior(int& M, vector<double>& wght,
00070 vector< vector<double> >& phi);
00071
00073 void SamplePrior(int M, vector<double>& V);
00074
00075
00076 private:
00077 friend class boost::serialization::access;
00078 template<class Archive>
00079 void serialize(Archive & ar, const unsigned int version) {
00080 this->pre_serialize(ar, version);
00081 try {
00082 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(InitialMixturePrior);
00083 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00084 }
00085 try {
00086 ar & BOOST_SERIALIZATION_NVP(Lambda);
00087 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00088 }
00089 try {
00090 ar & BOOST_SERIALIZATION_NVP(Poisson);
00091 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00092 }
00093 try {
00094 ar & BOOST_SERIALIZATION_NVP(unit);
00095 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00096 }
00097 this->post_serialize(ar, version);
00098 }
00099
00100 };
00101
00102 }
00103
00104 BIE_CLASS_TYPE_INFO(BIE::InitialMixturePriorPoisson)
00105 BIE_CLASS_EXPORT_KEY(BIE::InitialMixturePriorPoisson)
00106 #endif