30   #if ((defined(G4MULTITHREADED) && !defined(G4USE_STD11)) || \ 
   31       !__has_feature(cxx_thread_local)) 
   32     #define CLANG_NOSTDTLS 
   36 #if (defined(G4MULTITHREADED) && \ 
   37     (!defined(G4USE_STD11) || (defined(CLANG_NOSTDTLS)))) 
   49   return genGamma( anEngine, k, lambda );
 
   54   return genGamma( anEngine, k, lambda );
 
   66    for (i=0; i<size; ++i)
 
   67      vect[i] = 
shoot(k,lambda);
 
   76    for (i=0; i<size; ++i)
 
   77      vect[i] = 
shoot(anEngine,k,lambda);
 
   84    for (i=0; i<size; ++i)
 
   93    for (i=0; i<size; ++i)
 
   94      vect[i] = 
fire(k,lambda);
 
  104 static G4ThreadLocal G4double aa = -1.0, aaa = -1.0, b, c, d, e, r, 
s, si, ss, q0,
 
  105        q1 = 0.0416666664, q2 =  0.0208333723, q3 = 0.0079849875,
 
  106        q4 = 0.0015746717, q5 = -0.0003349403, q6 = 0.0003340332,
 
  107        q7 = 0.0006053049, q8 = -0.0004701849, q9 = 0.0001710320,
 
  108        a1 = 0.333333333,  
a2 = -0.249999949,  
a3 = 0.199999867,
 
  109        a4 =-0.166677482,  
a5 =  0.142873973,  a6 =-0.124385581,
 
  110        a7 = 0.110368310,  a8 = -0.112750886,  a9 = 0.104089866,
 
  111        e1 = 1.000000000,  
e2 =  0.499999994,  
e3 = 0.166666848,
 
  112        e4 = 0.041664508,  e5 =  0.008345522,  e6 = 0.001353826,
 
  120  if( a <= 0.0 ) 
return (-1.0);
 
  121  if( lambda <= 0.0 ) 
return (-1.0);
 
  125     b = 1.0 + 0.36788794412 * 
a;       
 
  128        p = b * anEngine->flat();
 
  131            gds = std::exp(std::log(p) / a);
 
  132            if (std::log(anEngine->flat()) <= -gds) 
return(gds/lambda);
 
  136            gds = - std::log ((b - p) / a);
 
  137            if (std::log(anEngine->flat()) <= ((a - 1.0) * std::log(gds))) 
return(gds/lambda);
 
  148         d = 5.656854249 - 12.0 * 
s;
 
  152       v1 = 2.0 * anEngine->flat() - 1.0;
 
  153       v2 = 2.0 * anEngine->flat() - 1.0;
 
  155     } 
while ( v12 > 1.0 );
 
  156     t = v1*std::sqrt(-2.0*std::log(v12)/v12);
 
  159     if (t >= 0.0) 
return(gds/lambda);         
 
  161     u = anEngine->flat();            
 
  162     if (d * u <= t * t * t) 
return(gds/lambda); 
 
  168         q0 = ((((((((q9 * r + q8) * r + q7) * r + q6) * r + q5) * r + q4) *
 
  169                           r + q3) * r + q2) * r + q1) * r;
 
  180                 b = 1.654 + 0.0076 * ss;
 
  181                 si = 1.68 / s + 0.275;
 
  182                 c = 0.062 / s + 0.024;
 
  187             b = 0.463 + s - 0.178 * ss;
 
  189             c = 0.195 / s - 0.079 + 0.016 * 
s;
 
  195         if (std::fabs(v) > 0.25)
 
  197             q = q0 - s * t + 0.25 * t * t + (ss + ss) * std::log(1.0 + v);
 
  201             q = q0 + 0.5 * t * t * ((((((((a9 * v + a8) * v + a7) * v + a6) *
 
  202                             v + 
a5) * v + 
a4) * v + 
a3) * v + 
a2) * v + 
a1) * v;
 
  204         if (std::log(1.0 - u) <= q) 
return(gds/lambda);
 
  211          e = -std::log(anEngine->flat());
 
  212          u = anEngine->flat();
 
  214          sign_u = (u > 0)? 1.0 : -1.0;
 
  215          t = b + (e * si) * sign_u;
 
  217         while (t <= -0.71874483771719);   
 
  219         if (std::fabs(v) > 0.25)
 
  221             q = q0 - s * t + 0.25 * t * t + (ss + ss) * std::log(1.0 + v);
 
  225             q = q0 + 0.5 * t * t * ((((((((a9 * v + a8) * v + a7) * v + a6) *
 
  226                             v + 
a5) * v + 
a4) * v + 
a3) * v + 
a2) * v + 
a1) * v;
 
  228         if (q <= 0.0) 
continue;           
 
  231             w = std::exp(q) - 1.0;
 
  235             w = ((((((e7 * q + e6) * q + e5) * q + 
e4) * q + 
e3) * q + 
e2) *
 
  238         if ( c * u * sign_u <= w * std::exp(e - 0.5 * t * t))
 
static CLHEP::HepRandomEngine * getTheEngine()
void fireArray(const G4int size, G4double *vect)
CLHEP::HepRandomEngine * localEngine
static void shootArray(const G4int size, G4double *vect, G4double k=1.0, G4double lambda=1.0)
static G4double genGamma(CLHEP::HepRandomEngine *anEngine, G4double k, G4double lambda)