49 #ifdef G4MULTITHREADED
61 static G4Pow geant4pow;
70 : onethird(1.0/3.0), max2(5)
72 #ifdef G4MULTITHREADED
76 "Attempt to instantiate G4Pow in worker thread!");
80 const G4int maxZfact = 170;
81 const G4int numLowA = 17;
91 pz13.resize(maxZ,0.0);
92 lowa13.resize(numLowA,0.0);
94 fexp.resize(maxZfact,0.0);
95 fact.resize(maxZfact,0.0);
125 for (
G4int i=4; i<numLowA; ++i) {
141 const bool invert = (A<1.);
155 res =
pz13[i]*(1.+x-x*x*(1.-1.666667*
x));
159 res = invert ? 1./res : res;
167 const G4int i =
static_cast<G4int>(4.*(a+0.125));
170 res =
lowa13[i]*(1.+x-x*x*(1.-1.666667*
x));
171 res = invert ? 1./res : res;
179 if(0.0 == x) {
return 0.0; }
180 if(std::abs(n) > 8) {
return std::pow(x,
G4double(n)); }
182 if(n >= 0) {
for(
G4int i=0; i<
n; ++i) { res *=
x; } }
187 for(
G4int i=0; i<
nn; ++i) { res *=
y; }
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double A13High(const G4double, const bool) const
std::vector< ExP01TrackerHit * > a
G4double A13(G4double A) const
static G4Pow * fpInstance
G4double G4Log(G4double x)
G4double powN(G4double x, G4int n) const
static G4Pow * GetInstance()
double A(double temperature)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4double A13Low(const G4double, const bool) const