62# define G4Log std::log
100 const G4double PX1log = 1.01875663804580931796E-4;
101 const G4double PX2log = 4.97494994976747001425E-1;
102 const G4double PX3log = 4.70579119878881725854E0;
103 const G4double PX4log = 1.44989225341610930846E1;
104 const G4double PX5log = 1.79368678507819816313E1;
105 const G4double PX6log = 7.70838733755885391666E0;
123 const G4double QX1log = 1.12873587189167450590E1;
124 const G4double QX2log = 4.52279145837532221105E1;
125 const G4double QX3log = 8.29875266912776603211E1;
126 const G4double QX4log = 7.11544750618563894466E1;
127 const G4double QX5log = 2.31251620126765340583E1;
190 uint64_t le = (n >> 52);
198 n &= 0x800FFFFFFFFFFFFFULL;
201 const uint64_t p05 = 0x3FE0000000000000ULL;
212 int32_t e = (n >> 23) - 127;
216 const uint32_t p05f = 0x3f000000;
250 res -=
fe * 2.121944400546905827679e-4;
254 res +=
fe * 0.693359375;
257 res = std::numeric_limits<G4double>::infinity();
259 res = -std::numeric_limits<G4double>::quiet_NaN();
322 res += -2.12194440e-4f *
fe;
327 res += 0.693359375f *
fe;
330 res = std::numeric_limits<G4float>::infinity();
332 res = -std::numeric_limits<G4float>::quiet_NaN();
G4float G4Logf(G4float x)
void logfv(const uint32_t size, G4float const *__restrict__ iarray, G4float *__restrict__ oarray)
void G4Logfv(const uint32_t size, G4float const *__restrict__ iarray, G4float *__restrict__ oarray)
void logv(const uint32_t size, G4double const *__restrict__ iarray, G4double *__restrict__ oarray)
void G4Logv(const uint32_t size, G4double const *__restrict__ iarray, G4double *__restrict__ oarray)
G4double G4Log(G4double x)
G4float getMantExponentf(const G4float x, G4float &fe)
Like frexp but vectorising and the exponent is a float.
G4double get_log_px(const G4double x)
const G4double LOG_LOWER_LIMIT
uint64_t dp2uint64(G4double x)
const G4float LOGF_UPPER_LIMIT
const G4float LOGF_LOWER_LIMIT
G4float get_log_poly(const G4float x)
const G4double LOG_UPPER_LIMIT
G4double getMantExponent(const G4double x, G4double &fe)
Like frexp but vectorising and the exponent is a double.
G4double get_log_qx(const G4double x)
G4float uint322sp(G4int x)
G4double uint642dp(uint64_t ll)
uint32_t sp2uint32(G4float x)