3// -----------------------------------------------------------------------
5// --- HepRandomEngine ---
6// inlined functions implementation file
7// -----------------------------------------------------------------------
8// This file is part of Geant4 (simulation toolkit for HEP).
10// =======================================================================
11// Gabriele Cosmo - Created: 5th September 1995
12// - Added == and != operators: 19th November 1996
13// - Moved seeds table to HepRandom: 19th March 1998
14// =======================================================================
20inline bool HepRandomEngine::operator==(const HepRandomEngine& engine) {
21 return (this==&engine);
24inline bool HepRandomEngine::operator!=(const HepRandomEngine& engine) {
25 return (this!=&engine);
28inline double HepRandomEngine::exponent_bit_32() {
29 static const double exponent_bit_32 = std::pow(2.0, 32.0);
30 return exponent_bit_32;
33inline double HepRandomEngine::mantissa_bit_12() {
34 static const double mantissa_bit_12 = std::pow(0.5, 12.0);
35 return mantissa_bit_12;
38inline double HepRandomEngine::mantissa_bit_24() {
39 static const double mantissa_bit_24 = std::pow(0.5, 24.0);
40 return mantissa_bit_24;
43inline double HepRandomEngine::twoToMinus_32() {
44 static const double twoToMinus_32 = std::ldexp(1.0, -32);
48inline double HepRandomEngine::twoToMinus_48() {
49 static const double twoToMinus_48 = std::ldexp(1.0, -48);
53inline double HepRandomEngine::twoToMinus_49() {
54 static const double twoToMinus_49 = std::ldexp(1.0, -49);
58inline double HepRandomEngine::twoToMinus_53() {
59 static const double twoToMinus_53 = std::ldexp(1.0, -53);
63inline double HepRandomEngine::nearlyTwoToMinus_54() {
64 static const double nearlyTwoToMinus_54 = std::ldexp(1.0, -54)
65 - std::ldexp(1.0, -100);
66 return nearlyTwoToMinus_54;