Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/src/erfQ.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/clhep/src/erfQ.cc (Version 11.3.0) and /externals/clhep/src/erfQ.cc (Version 10.1.p3)


                                                   >>   1 // $Id:$
  1 // -*- C++ -*-                                      2 // -*- C++ -*-
  2 //                                                  3 //
  3 // -------------------------------------------      4 // -----------------------------------------------------------------------
  4 //                             HEP Random           5 //                             HEP Random
  5 //                          --- erfQ ---            6 //                          --- erfQ ---
  6 //                      method implementation       7 //                      method implementation file
  7 // -------------------------------------------      8 // -----------------------------------------------------------------------
  8                                                     9 
  9 // Contains methods that do not depend on larg     10 // Contains methods that do not depend on large tables.
 10 //                                                 11 //
 11 // erfQ     (double x)                             12 // erfQ     (double x)
 12                                                    13 
 13 // ===========================================     14 // =======================================================================
 14 // M Fischler   - Created 1/26/00.                 15 // M Fischler   - Created 1/26/00.
 15 //                                                 16 //
 16 // ===========================================     17 // =======================================================================
 17                                                    18 
 18 #include "CLHEP/Random/Stat.h"                     19 #include "CLHEP/Random/Stat.h"
 19 #include <cmath>                                   20 #include <cmath>
 20                                                    21 
 21 namespace CLHEP {                                  22 namespace CLHEP {
 22                                                    23 
 23 double HepStat::erfQ (double x) {                  24 double HepStat::erfQ (double x) {
 24 //                                                 25 //
 25 // erfQ is accurate to 7 places.                   26 // erfQ is accurate to 7 places.
 26 // See Numerical Recipes P 221                     27 // See Numerical Recipes P 221
 27 //                                                 28 //
 28                                                    29 
 29   double t, z, erfc;                               30   double t, z, erfc; 
 30                                                    31 
 31   z = std::abs(x);                                 32   z = std::abs(x);
 32   t = 1.0/(1.0+.5*z);                              33   t = 1.0/(1.0+.5*z);
 33                                                    34 
 34   erfc= t*std::exp(-z*z-1.26551223+t*(1.000023     35   erfc= t*std::exp(-z*z-1.26551223+t*(1.00002368+t*(0.37409196+t*(0.09678418+
 35   t*(-0.18628806+t*(0.27886807+t*(-1.13520398+     36   t*(-0.18628806+t*(0.27886807+t*(-1.13520398+t*(1.48851587+
 36   t*(-0.82215223+t*0.17087277 ))) ))) )));         37   t*(-0.82215223+t*0.17087277 ))) ))) )));
 37                                                    38 
 38   // (The derivation of this formula should be     39   // (The derivation of this formula should be obvious.)
 39                                                    40 
 40   if ( x < 0 ) erfc = 2.0 - erfc;                  41   if ( x < 0 ) erfc = 2.0 - erfc;
 41                                                    42 
 42   return 1 - erfc;                                 43   return 1 - erfc;
 43                                                    44 
 44 }                                                  45 }
 45                                                    46 
 46                                                    47 
 47 }  // namespace CLHEP                              48 }  // namespace CLHEP
 48                                                    49 
 49                                                    50