BIE |
/home/weinberg/src/BIE/include/WeibullDist.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef WeibullDist_h 00004 #define WeibullDist_h 00005 00006 #include <values.h> 00007 #include <math.h> 00008 00009 #include "Distribution.h" 00010 #include "Uniform.h" 00011 00012 #include "Serializable.h" 00013 00014 00015 namespace BIE { 00016 00020 class WeibullDist : public Distribution { 00021 00022 public: 00023 00025 WeibullDist(); 00026 00028 WeibullDist(double a, double b, double minv=0.0, double maxv=MAXDOUBLE); 00029 00031 ~WeibullDist(); 00032 00034 Distribution* New(); 00035 00037 virtual double PDF(State& x); 00038 00040 virtual double logPDF(State& x); 00041 00043 virtual double CDF(State& x); 00044 00046 virtual vector<double> lower(void); 00047 00049 virtual vector<double> upper(void); 00050 00052 virtual vector<double> Mean(void); 00053 00055 virtual vector<double> StdDev(void); 00056 00058 virtual vector<double> Moments(int i); 00059 00061 virtual vector<double> Sample(void); 00062 00063 private: 00064 double mean; 00065 double var; 00066 00068 double alpha, beta; 00069 double vmin, vmax; 00070 double norm, mincdf, maxcdf; 00071 Uniform * unit; 00072 00073 // AUTO GENERATED BY ../persistence/autopersist.py 00074 private: 00075 friend class boost::serialization::access; 00076 template<class Archive> 00077 void serialize(Archive & ar, const unsigned int version) { 00078 this->pre_serialize(ar, version); 00079 try { 00080 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Distribution); 00081 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00082 } 00083 try { 00084 ar & BOOST_SERIALIZATION_NVP(mean); 00085 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00086 } 00087 try { 00088 ar & BOOST_SERIALIZATION_NVP(var); 00089 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00090 } 00091 try { 00092 ar & BOOST_SERIALIZATION_NVP(alpha); 00093 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00094 } 00095 try { 00096 ar & BOOST_SERIALIZATION_NVP(beta); 00097 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00098 } 00099 try { 00100 ar & BOOST_SERIALIZATION_NVP(vmin); 00101 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00102 } 00103 try { 00104 ar & BOOST_SERIALIZATION_NVP(vmax); 00105 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00106 } 00107 try { 00108 ar & BOOST_SERIALIZATION_NVP(norm); 00109 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00110 } 00111 try { 00112 ar & BOOST_SERIALIZATION_NVP(mincdf); 00113 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00114 } 00115 try { 00116 ar & BOOST_SERIALIZATION_NVP(maxcdf); 00117 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00118 } 00119 try { 00120 ar & BOOST_SERIALIZATION_NVP(unit); 00121 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00122 } 00123 this->post_serialize(ar, version); 00124 } 00125 00126 }; 00127 00128 } // namespace BIE 00129 BIE_CLASS_TYPE_INFO(BIE::WeibullDist) 00130 BIE_CLASS_EXPORT_KEY(BIE::WeibullDist) 00131 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:11 2010 by
|