Geant4 Cross Reference |
1 // -*- C++ -*- 1 2 // 3 // ------------------------------------------- 4 // HEP Random 5 // --- HepStat --- 6 // Purely static class containing use 7 8 // ------------------------------------------- 9 10 // HepStat is a substitute for using a namespa 11 // One would never instantiate a HepStat objec 12 // usage of any of these methods looks like -- 13 // 14 // double x = HepStat::erf ( .1 ); 15 // 16 // A user may wish to improve the readability 17 // one method many times by lines like using H 18 // 19 // and later, x = erf(u); will work. 20 // 21 22 // These methods are implemented in separate . 23 // user code need pull in only the code that i 24 // (ROUGH estimates in cycles) and table footp 25 // in this header. 26 27 28 // =========================================== 29 // M. Fischler - Created: 1/25/00 30 // 31 // M. Fischler - Inserted flatToGaussian 1/ 32 // From code of an attempt to speed u 33 // by use of tables and splines. The 34 // significantly faster than Box- 35 // algorithm is left as the RandG 36 // - Inserted inverseErf 37 // M. Fischler - Inserted gammln 2/4/00 38 // M. Fischler - Made constructor private; 39 // =========================================== 40 41 #ifndef HepStat_h 42 #define HepStat_h 1 43 44 namespace CLHEP { 45 46 /** 47 * @author 48 * @ingroup random 49 */ 50 class HepStat { 51 52 private: 53 HepStat(); 54 // You CANNOT instantiate a HepStat object. 55 56 public: 57 58 static double flatToGaussian (double r); 59 // This is defined by the satement that if 60 // on (0,1) then flatToGaussian(e()) is dis 61 // Gaussian. That is, flatToGaussian is th 62 // a Gaussian. 63 // Footprint: 30 K // Time: 150 cycl 64 65 static double inverseErf (double t); 66 static double erf (double x); 67 // defined in flatToGaussian.cc 68 69 static double erfQ (double x); 70 // Quicker, and with less footprint, than er 71 // but only accurate to 7 digits. 72 // Footprint: 0 // Time: 73 74 static double gammln (double x); 75 // ln (gamma(x)) 76 77 }; 78 79 } // namespace CLHEP 80 81 #endif 82