BIE |
/home/weinberg/src/BIE/include/StdCandle2.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef StdCandle_h 00004 #define StdCandle_h 00005 00006 #define TABLE_EVEN 1 00007 00008 #include <cmath> 00009 #include <vector> 00010 00011 using namespace std; 00012 00013 #include "Serializable.h" 00014 00015 00016 class Table; 00017 class Normal; 00018 class Uniform; 00019 class JacoQuad; 00020 00024 class StdCandle: public Serializable 00025 { 00026 private: 00027 00028 double A, Z; 00029 double A1, H; 00030 double K0, SIGK, KLOW, KLIM; 00031 double lastL, lastB, lastDen; 00032 00033 JacoQuad *intgr; 00034 Table *table, *ext, *dext, *kprob, *kdist; 00035 vector<double> tt, uu, rr, zz, ret; 00036 vector<double> ttC, uuC, mat; 00037 00038 double CosL, SinL, CosB, SinB; 00039 double qmin, qmax; 00040 00041 void q_tabs(void); 00042 00043 Uniform *uniform; 00044 Normal *normal; 00045 bool initrandom, initkdist, reset, allocated; 00046 unsigned iseed; 00047 double dmax, aknorm; 00048 00049 void allocate(void); 00050 00051 public: 00052 00055 00056 static int NUM; 00057 00059 static int NTAB; 00060 00062 static double ALPHA; 00063 00065 static double BETA; 00066 00068 static double R; 00069 00071 static double AK; 00072 00074 static int NITER; 00075 00077 static double tol; 00078 00079 static double Log10; 00080 static double onedeg; 00082 00096 00097 StdCandle(); 00098 00100 StdCandle(double a1, double h, double k0, double sigk, double klow, double klim); 00101 00103 StdCandle* New(); 00104 00106 void set(double a1, double h, 00107 double k0, double sigk, double klow, double klim); 00108 00110 ~StdCandle(); 00111 00113 void initdens(double l, double b, bool kd=false); 00114 00116 double dens(double a, double z, double l, double b, bool kd=false); 00117 00120 double kfrac(double kmin, double kmax); 00121 00123 double kfracD(double k); 00124 00126 vector<double> realize(double a, double z); 00127 00129 void print_kfrac(const char *); 00130 00131 // AUTO GENERATED BY ../persistence/autopersist.py 00132 private: 00133 friend class boost::serialization::access; 00134 template<class Archive> 00135 void serialize(Archive & ar, const unsigned int version) { 00136 this->pre_serialize(ar, version); 00137 try { 00138 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable); 00139 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00140 } 00141 try { 00142 ar & BOOST_SERIALIZATION_NVP(A); 00143 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00144 } 00145 try { 00146 ar & BOOST_SERIALIZATION_NVP(Z); 00147 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00148 } 00149 try { 00150 ar & BOOST_SERIALIZATION_NVP(A1); 00151 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00152 } 00153 try { 00154 ar & BOOST_SERIALIZATION_NVP(H); 00155 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00156 } 00157 try { 00158 ar & BOOST_SERIALIZATION_NVP(K0); 00159 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00160 } 00161 try { 00162 ar & BOOST_SERIALIZATION_NVP(SIGK); 00163 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00164 } 00165 try { 00166 ar & BOOST_SERIALIZATION_NVP(KLOW); 00167 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00168 } 00169 try { 00170 ar & BOOST_SERIALIZATION_NVP(KLIM); 00171 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00172 } 00173 try { 00174 ar & BOOST_SERIALIZATION_NVP(lastL); 00175 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00176 } 00177 try { 00178 ar & BOOST_SERIALIZATION_NVP(lastB); 00179 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00180 } 00181 try { 00182 ar & BOOST_SERIALIZATION_NVP(lastDen); 00183 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00184 } 00185 try { 00186 ar & BOOST_SERIALIZATION_NVP(intgr); 00187 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00188 } 00189 try { 00190 ar & BOOST_SERIALIZATION_NVP(tt); 00191 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00192 } 00193 try { 00194 ar & BOOST_SERIALIZATION_NVP(uu); 00195 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00196 } 00197 try { 00198 ar & BOOST_SERIALIZATION_NVP(rr); 00199 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00200 } 00201 try { 00202 ar & BOOST_SERIALIZATION_NVP(zz); 00203 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00204 } 00205 try { 00206 ar & BOOST_SERIALIZATION_NVP(ret); 00207 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00208 } 00209 try { 00210 ar & BOOST_SERIALIZATION_NVP(ttC); 00211 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00212 } 00213 try { 00214 ar & BOOST_SERIALIZATION_NVP(uuC); 00215 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00216 } 00217 try { 00218 ar & BOOST_SERIALIZATION_NVP(mat); 00219 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00220 } 00221 try { 00222 ar & BOOST_SERIALIZATION_NVP(CosL); 00223 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00224 } 00225 try { 00226 ar & BOOST_SERIALIZATION_NVP(SinL); 00227 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00228 } 00229 try { 00230 ar & BOOST_SERIALIZATION_NVP(CosB); 00231 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00232 } 00233 try { 00234 ar & BOOST_SERIALIZATION_NVP(SinB); 00235 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00236 } 00237 try { 00238 ar & BOOST_SERIALIZATION_NVP(qmin); 00239 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00240 } 00241 try { 00242 ar & BOOST_SERIALIZATION_NVP(qmax); 00243 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00244 } 00245 try { 00246 ar & BOOST_SERIALIZATION_NVP(uniform); 00247 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00248 } 00249 try { 00250 ar & BOOST_SERIALIZATION_NVP(normal); 00251 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00252 } 00253 try { 00254 ar & BOOST_SERIALIZATION_NVP(initrandom); 00255 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00256 } 00257 try { 00258 ar & BOOST_SERIALIZATION_NVP(initkdist); 00259 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00260 } 00261 try { 00262 ar & BOOST_SERIALIZATION_NVP(reset); 00263 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00264 } 00265 try { 00266 ar & BOOST_SERIALIZATION_NVP(allocated); 00267 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00268 } 00269 try { 00270 ar & BOOST_SERIALIZATION_NVP(iseed); 00271 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00272 } 00273 try { 00274 ar & BOOST_SERIALIZATION_NVP(dmax); 00275 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00276 } 00277 try { 00278 ar & BOOST_SERIALIZATION_NVP(aknorm); 00279 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00280 } 00281 try { 00282 ar & BOOST_SERIALIZATION_NVP(NUM); 00283 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00284 } 00285 try { 00286 ar & BOOST_SERIALIZATION_NVP(NTAB); 00287 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00288 } 00289 try { 00290 ar & BOOST_SERIALIZATION_NVP(ALPHA); 00291 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00292 } 00293 try { 00294 ar & BOOST_SERIALIZATION_NVP(BETA); 00295 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00296 } 00297 try { 00298 ar & BOOST_SERIALIZATION_NVP(R); 00299 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00300 } 00301 try { 00302 ar & BOOST_SERIALIZATION_NVP(AK); 00303 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00304 } 00305 try { 00306 ar & BOOST_SERIALIZATION_NVP(NITER); 00307 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00308 } 00309 try { 00310 ar & BOOST_SERIALIZATION_NVP(tol); 00311 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00312 } 00313 try { 00314 ar & BOOST_SERIALIZATION_NVP(Log10); 00315 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00316 } 00317 try { 00318 ar & BOOST_SERIALIZATION_NVP(onedeg); 00319 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00320 } 00321 this->post_serialize(ar, version); 00322 } 00323 00324 }; 00325 BIE_CLASS_TYPE_INFO(StdCandle) 00326 BIE_CLASS_EXPORT_KEY(StdCandle) 00327 #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
|