BIE |
/home/weinberg/src/BIE/include/GaussianDist.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef GaussianDist_h 00004 #define GaussianDist_h 00005 00006 #include <values.h> 00007 #include <math.h> 00008 #include "Distribution.h" 00009 #include "Normal.h" 00010 00011 #include "Serializable.h" 00012 00013 00014 namespace BIE { 00015 00019 class GaussianDist : public Distribution { 00020 00021 public: 00022 00024 GaussianDist(); 00025 00027 GaussianDist(double m, double v, double minv=-MAXDOUBLE, double maxv=MAXDOUBLE); 00028 00030 ~GaussianDist(); 00031 00033 Distribution* New(); 00034 00036 virtual double PDF(State& x); 00037 00039 virtual double logPDF(State& x); 00040 00042 virtual double CDF(State& x); 00043 00045 virtual vector<double> lower(void); 00046 00048 virtual vector<double> upper(void); 00049 00051 virtual vector<double> Mean(void); 00052 00054 virtual vector<double> StdDev(void); 00055 00057 virtual vector<double> Moments(int i); 00058 00060 virtual vector<double> Sample(void); 00061 00062 private: 00063 double mean; 00064 double var; 00065 double vmin, vmax; 00066 double norm, mincdf, maxcdf; 00067 Normal *normal; 00068 00069 // AUTO GENERATED BY ../persistence/autopersist.py 00070 private: 00071 friend class boost::serialization::access; 00072 template<class Archive> 00073 void serialize(Archive & ar, const unsigned int version) { 00074 this->pre_serialize(ar, version); 00075 try { 00076 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Distribution); 00077 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00078 } 00079 try { 00080 ar & BOOST_SERIALIZATION_NVP(mean); 00081 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00082 } 00083 try { 00084 ar & BOOST_SERIALIZATION_NVP(var); 00085 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00086 } 00087 try { 00088 ar & BOOST_SERIALIZATION_NVP(vmin); 00089 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00090 } 00091 try { 00092 ar & BOOST_SERIALIZATION_NVP(vmax); 00093 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00094 } 00095 try { 00096 ar & BOOST_SERIALIZATION_NVP(norm); 00097 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00098 } 00099 try { 00100 ar & BOOST_SERIALIZATION_NVP(mincdf); 00101 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00102 } 00103 try { 00104 ar & BOOST_SERIALIZATION_NVP(maxcdf); 00105 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00106 } 00107 try { 00108 ar & BOOST_SERIALIZATION_NVP(normal); 00109 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00110 } 00111 this->post_serialize(ar, version); 00112 } 00113 00114 }; 00115 00116 } // namespace BIE 00117 BIE_CLASS_TYPE_INFO(BIE::GaussianDist) 00118 BIE_CLASS_EXPORT_KEY(BIE::GaussianDist) 00119 #endif 00120 Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|