62# define G4Log std::log
83 const G4double PX1log = 1.01875663804580931796E-4;
84 const G4double PX2log = 4.97494994976747001425E-1;
85 const G4double PX3log = 4.70579119878881725854E0;
86 const G4double PX4log = 1.44989225341610930846E1;
87 const G4double PX5log = 1.79368678507819816313E1;
88 const G4double PX6log = 7.70838733755885391666E0;
106 const G4double QX1log = 1.12873587189167450590E1;
107 const G4double QX2log = 4.52279145837532221105E1;
108 const G4double QX3log = 8.29875266912776603211E1;
109 const G4double QX4log = 7.11544750618563894466E1;
110 const G4double QX5log = 2.31251620126765340583E1;
133 uint64_t le = (n >> 52);
141 n &= 0x800FFFFFFFFFFFFFULL;
144 const uint64_t p05 = 0x3FE0000000000000ULL;
155 int32_t e = (n >> 23) - 127;
159 const uint32_t p05f = 0x3f000000;
193 res -=
fe * 2.121944400546905827679e-4;
197 res +=
fe * 0.693359375;
200 res = std::numeric_limits<G4double>::infinity();
202 res = -std::numeric_limits<G4double>::quiet_NaN();
265 res += -2.12194440e-4f *
fe;
270 res += 0.693359375f *
fe;
273 res = std::numeric_limits<G4float>::infinity();
275 res = -std::numeric_limits<G4float>::quiet_NaN();
G4float G4Logf(G4float x)
G4double G4Log(G4double x)
G4double uint642dp(uint64_t ll)
uint32_t sp2uint32(G4float x)
uint64_t dp2uint64(G4double x)
G4float uint322sp(G4int 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
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)