64 #define G4Log std::log
102 const G4double PX1log = 1.01875663804580931796E-4;
103 const G4double PX2log = 4.97494994976747001425E-1;
104 const G4double PX3log = 4.70579119878881725854E0;
105 const G4double PX4log = 1.44989225341610930846E1;
106 const G4double PX5log = 1.79368678507819816313E1;
107 const G4double PX6log = 7.70838733755885391666E0;
125 const G4double QX1log = 1.12873587189167450590E1;
126 const G4double QX2log = 4.52279145837532221105E1;
127 const G4double QX3log = 8.29875266912776603211E1;
128 const G4double QX4log = 7.11544750618563894466E1;
129 const G4double QX5log = 2.31251620126765340583E1;
192 uint64_t le = (n >> 52);
199 n &=0x800FFFFFFFFFFFFFULL;
202 const uint64_t p05 = 0x3FE0000000000000ULL;
213 int32_t e = (n >> 23)-127;
217 const uint32_t p05f = 0x3f000000;
251 res -= fe * 2.121944400546905827679e-4;
255 res += fe * 0.693359375;
258 res = std::numeric_limits<G4double>::infinity();
260 res = - std::numeric_limits<G4double>::quiet_NaN();
323 res += -2.12194440e-4f *
fe;
328 res += 0.693359375f *
fe;
331 res = std::numeric_limits<G4float>::infinity();
333 res = -std::numeric_limits<G4float>::quiet_NaN();
340 void logv(
const uint32_t size,
G4double const * __restrict__ iarray,
G4double* __restrict__ oarray);
342 void logfv(
const uint32_t size,
G4float const * __restrict__ iarray,
G4float* __restrict__ oarray);
343 void G4Logfv(
const uint32_t size,
G4float const * __restrict__ iarray,
G4float* __restrict__ oarray);
G4float getMantExponentf(const G4float x, G4float &fe)
Like frexp but vectorising and the exponent is a float.
const G4float LOGF_UPPER_LIMIT
void G4Logfv(const uint32_t size, G4float const *__restrict__ iarray, G4float *__restrict__ oarray)
void logfv(const uint32_t size, G4float const *__restrict__ iarray, G4float *__restrict__ oarray)
G4double get_log_qx(const G4double x)
void logv(const uint32_t size, G4double const *__restrict__ iarray, G4double *__restrict__ oarray)
const G4float LOGF_LOWER_LIMIT
void G4Logv(const uint32_t size, G4double const *__restrict__ iarray, G4double *__restrict__ oarray)
uint32_t sp2uint32(G4float x)
G4double uint642dp(uint64_t ll)
G4float uint322sp(G4int x)
G4double G4Log(G4double x)
G4double getMantExponent(const G4double x, G4double &fe)
Like frexp but vectorising and the exponent is a double.
uint64_t dp2uint64(G4double x)
G4double get_log_px(const G4double x)
const G4double LOG_LOWER_LIMIT
G4float G4Logf(G4float x)
const G4double LOG_UPPER_LIMIT
G4float get_log_poly(const G4float x)