BIE |
/home/weinberg/src/BIE/include/GaussTestLikelihoodFunction.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef GaussTestLikelihoodFunction_h 00004 #define GaussTestLikelihoodFunction_h 00005 00006 #include "LikelihoodFunction.h" 00007 00008 #include "Serializable.h" 00009 00010 00011 namespace BIE { 00012 00013 //+ CLICLASS GaussTestLikelihoodFunction SUPER LikelihoodFunction 00023 class GaussTestLikelihoodFunction : public LikelihoodFunction 00024 { 00025 00026 private: 00027 00028 vector<double> fdata, pdata; 00029 double xmin, xmax, dx; 00030 double *centers, *variance, *weights; 00031 uint32 number; 00032 00033 00034 00035 int dim; 00036 int nbins; 00037 int N; 00038 bool point, cauchyData, cauchyModel; 00039 00040 public: 00041 00042 //+ CLICONSTR 00044 GaussTestLikelihoodFunction(); 00045 00046 //+ CLICONSTR int int 00048 GaussTestLikelihoodFunction(int Nbins, int N0); 00049 00050 //+ CLICONSTR int 00052 GaussTestLikelihoodFunction(int N0); 00053 00055 ~GaussTestLikelihoodFunction(); 00056 00057 //+ CLIMETHOD void useCauchyModel bool 00059 void useCauchyModel(bool b) { cauchyModel = b; } 00060 00061 //+ CLIMETHOD void useCauchyData bool 00063 void useCauchyData(bool b) { cauchyData = b; } 00064 00065 //+ CLIMETHOD void newModel string 00067 void newModel(string file); 00068 00069 //+ CLIMETHOD void SetDim int 00071 void SetDim(int n); 00072 00074 double LikeProb(std::vector<double> &z, SampleDistribution* sd, 00075 double norm, Tile *t, State *s, int indx) 00076 { return LocalLikelihood(s); } 00077 00078 00080 string ParameterDescription(int i); 00081 00082 protected: 00083 00085 void defaultModel(); 00086 00088 void makeSyntheticData(); 00089 00091 void makeSyntheticPointData(); 00092 00094 double LocalLikelihood(State* s); 00095 00096 // AUTO GENERATED BY ../persistence/autopersist.py 00097 private: 00098 friend class boost::serialization::access; 00099 BOOST_SERIALIZATION_SPLIT_MEMBER(); 00100 00101 template<class Archive> 00102 void save(Archive & ar, const unsigned int version) const { 00103 this->pre_save(ar, version); 00104 try { 00105 ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(LikelihoodFunction); 00106 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00107 } 00108 try { 00109 ar << BOOST_SERIALIZATION_NVP(fdata); 00110 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00111 } 00112 try { 00113 ar << BOOST_SERIALIZATION_NVP(pdata); 00114 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00115 } 00116 try { 00117 ar << BOOST_SERIALIZATION_NVP(xmin); 00118 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00119 } 00120 try { 00121 ar << BOOST_SERIALIZATION_NVP(xmax); 00122 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00123 } 00124 try { 00125 ar << BOOST_SERIALIZATION_NVP(dx); 00126 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00127 } 00128 try { 00129 ar << BOOST_SERIALIZATION_NVP(number); 00130 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00131 } 00132 try { 00133 ar << BOOST_SERIALIZATION_NVP(dim); 00134 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00135 } 00136 try { 00137 ar << BOOST_SERIALIZATION_NVP(nbins); 00138 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00139 } 00140 try { 00141 ar << BOOST_SERIALIZATION_NVP(N); 00142 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00143 } 00144 try { 00145 ar << BOOST_SERIALIZATION_NVP(point); 00146 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00147 } 00148 try { 00149 ar << BOOST_SERIALIZATION_NVP(cauchyData); 00150 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00151 } 00152 try { 00153 ar << BOOST_SERIALIZATION_NVP(cauchyModel); 00154 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00155 } 00156 char __buf[128]; 00157 for(uint32 __i=0; __i<number; __i++) { 00158 sprintf(__buf, "centers_%d", __i); 00159 try { 00160 ar << boost::serialization::make_nvp(__buf, centers[__i]); 00161 } catch (::boost::archive::archive_exception & e) { 00162 throw new BoostSerializationException(string(e.what()),__buf, __FILE__,__LINE__); 00163 } catch (BoostSerializationException * e) { 00164 throw new BoostSerializationException(e, __buf,__FILE__,__LINE__); 00165 } 00166 } 00167 for(uint32 __i=0; __i<number; __i++) { 00168 sprintf(__buf, "variance_%d", __i); 00169 try { 00170 ar << boost::serialization::make_nvp(__buf, variance[__i]); 00171 } catch (::boost::archive::archive_exception & e) { 00172 throw new BoostSerializationException(string(e.what()),__buf, __FILE__,__LINE__); 00173 } catch (BoostSerializationException * e) { 00174 throw new BoostSerializationException(e, __buf,__FILE__,__LINE__); 00175 } 00176 } 00177 for(uint32 __i=0; __i<number; __i++) { 00178 sprintf(__buf, "weights_%d", __i); 00179 try { 00180 ar << boost::serialization::make_nvp(__buf, weights[__i]); 00181 } catch (::boost::archive::archive_exception & e) { 00182 throw new BoostSerializationException(string(e.what()),__buf, __FILE__,__LINE__); 00183 } catch (BoostSerializationException * e) { 00184 throw new BoostSerializationException(e, __buf,__FILE__,__LINE__); 00185 } 00186 } 00187 this->post_save(ar, version); 00188 } 00189 00190 template<class Archive> 00191 void load(Archive & ar, const unsigned int version) { 00192 this->pre_load(ar, version); 00193 try { 00194 ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(LikelihoodFunction); 00195 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00196 } 00197 try { 00198 ar >> BOOST_SERIALIZATION_NVP(fdata); 00199 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00200 } 00201 try { 00202 ar >> BOOST_SERIALIZATION_NVP(pdata); 00203 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00204 } 00205 try { 00206 ar >> BOOST_SERIALIZATION_NVP(xmin); 00207 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00208 } 00209 try { 00210 ar >> BOOST_SERIALIZATION_NVP(xmax); 00211 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00212 } 00213 try { 00214 ar >> BOOST_SERIALIZATION_NVP(dx); 00215 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00216 } 00217 try { 00218 ar >> BOOST_SERIALIZATION_NVP(number); 00219 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00220 } 00221 try { 00222 ar >> BOOST_SERIALIZATION_NVP(dim); 00223 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00224 } 00225 try { 00226 ar >> BOOST_SERIALIZATION_NVP(nbins); 00227 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00228 } 00229 try { 00230 ar >> BOOST_SERIALIZATION_NVP(N); 00231 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00232 } 00233 try { 00234 ar >> BOOST_SERIALIZATION_NVP(point); 00235 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00236 } 00237 try { 00238 ar >> BOOST_SERIALIZATION_NVP(cauchyData); 00239 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00240 } 00241 try { 00242 ar >> BOOST_SERIALIZATION_NVP(cauchyModel); 00243 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00244 } 00245 char __buf[128]; 00246 centers = new double[number]; 00247 for(uint32 __i=0; __i<number; __i++) { 00248 sprintf(__buf, "centers_%d", __i); 00249 try { 00250 ar >> boost::serialization::make_nvp(__buf, centers[__i]); 00251 } catch (::boost::archive::archive_exception & e) { 00252 throw new BoostSerializationException(string(e.what()),__buf, __FILE__,__LINE__); 00253 } catch (BoostSerializationException * e) { 00254 throw new BoostSerializationException(e, __buf,__FILE__,__LINE__); 00255 } 00256 } 00257 variance = new double[number]; 00258 for(uint32 __i=0; __i<number; __i++) { 00259 sprintf(__buf, "variance_%d", __i); 00260 try { 00261 ar >> boost::serialization::make_nvp(__buf, variance[__i]); 00262 } catch (::boost::archive::archive_exception & e) { 00263 throw new BoostSerializationException(string(e.what()),__buf, __FILE__,__LINE__); 00264 } catch (BoostSerializationException * e) { 00265 throw new BoostSerializationException(e, __buf,__FILE__,__LINE__); 00266 } 00267 } 00268 weights = new double[number]; 00269 for(uint32 __i=0; __i<number; __i++) { 00270 sprintf(__buf, "weights_%d", __i); 00271 try { 00272 ar >> boost::serialization::make_nvp(__buf, weights[__i]); 00273 } catch (::boost::archive::archive_exception & e) { 00274 throw new BoostSerializationException(string(e.what()),__buf, __FILE__,__LINE__); 00275 } catch (BoostSerializationException * e) { 00276 throw new BoostSerializationException(e, __buf,__FILE__,__LINE__); 00277 } 00278 } 00279 this->post_load(ar, version); 00280 } 00281 00282 }; 00283 } //namespace BIE 00284 BIE_CLASS_TYPE_INFO(BIE::GaussTestLikelihoodFunction) 00285 BIE_CLASS_EXPORT_KEY(BIE::GaussTestLikelihoodFunction) 00286 #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
|