Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
erfQ.cc
Go to the documentation of this file.
1// -*- C++ -*-
2//
3// -----------------------------------------------------------------------
4// HEP Random
5// --- erfQ ---
6// method implementation file
7// -----------------------------------------------------------------------
8
9// Contains methods that do not depend on large tables.
10//
11// erfQ (double x)
12
13// =======================================================================
14// M Fischler - Created 1/26/00.
15//
16// =======================================================================
17
18#include "CLHEP/Random/Stat.h"
19#include <cmath>
20
21namespace CLHEP {
22
23double HepStat::erfQ (double x) {
24//
25// erfQ is accurate to 7 places.
26// See Numerical Recipes P 221
27//
28
29 double t, z, erfc;
30
31 z = std::abs(x);
32 t = 1.0/(1.0+.5*z);
33
34 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+t*(1.48851587+
36 t*(-0.82215223+t*0.17087277 ))) ))) )));
37
38 // (The derivation of this formula should be obvious.)
39
40 if ( x < 0 ) erfc = 2.0 - erfc;
41
42 return 1 - erfc;
43
44}
45
46
47} // namespace CLHEP
48
static double erfQ(double x)
Definition: erfQ.cc:23
Definition: DoubConv.h:17