Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
CLHEP::DoubConv Class Reference

#include <DoubConv.h>

Static Public Member Functions

static std::vector< unsigned long > dto2longs (double d)
 
static double longs2double (const std::vector< unsigned long > &v)
 
static std::string d2x (double d)
 

Detailed Description

Definition at line 28 of file DoubConv.h.

Member Function Documentation

◆ d2x()

std::string CLHEP::DoubConv::d2x ( double  d)
static

Definition at line 86 of file DoubConv.cc.

86 {
87 if ( !byte_order_known ) fill_byte_order ();
88 DB8 db;
89 db.d = d;
90 std::ostringstream ss;
91 for (int i=0; i<8; ++i) {
92 int k = byte_order[i];
93 ss << std::hex << std::setw(2) << std::setfill('0') << (int)db.b[k];
94 }
95 return ss.str();
96}

◆ dto2longs()

std::vector< unsigned long > CLHEP::DoubConv::dto2longs ( double  d)
static

Definition at line 98 of file DoubConv.cc.

98 {
99 std::vector<unsigned long> v(2);
100 if ( !byte_order_known ) fill_byte_order ();
101 DB8 db;
102 db.d = d;
103 v[0] = ((static_cast<unsigned long>(db.b[byte_order[0]])) << 24)
104 | ((static_cast<unsigned long>(db.b[byte_order[1]])) << 16)
105 | ((static_cast<unsigned long>(db.b[byte_order[2]])) << 8)
106 | ((static_cast<unsigned long>(db.b[byte_order[3]])) );
107 v[1] = ((static_cast<unsigned long>(db.b[byte_order[4]])) << 24)
108 | ((static_cast<unsigned long>(db.b[byte_order[5]])) << 16)
109 | ((static_cast<unsigned long>(db.b[byte_order[6]])) << 8)
110 | ((static_cast<unsigned long>(db.b[byte_order[7]])) );
111 return v;
112}

Referenced by CLHEP::HepJamesRandom::put(), CLHEP::NonRandomEngine::put(), CLHEP::Ranlux64Engine::put(), CLHEP::RandBinomial::put(), CLHEP::RandBreitWigner::put(), CLHEP::RandChiSquare::put(), CLHEP::RandExponential::put(), CLHEP::RandFlat::put(), CLHEP::RandGamma::put(), CLHEP::RandGauss::put(), CLHEP::RandGeneral::put(), CLHEP::RandPoisson::put(), CLHEP::RandPoissonQ::put(), CLHEP::RandStudentT::put(), CLHEP::RandGauss::saveDistState(), and CLHEP::RandGauss::saveEngineStatus().

◆ longs2double()

double CLHEP::DoubConv::longs2double ( const std::vector< unsigned long > &  v)
static

Definition at line 114 of file DoubConv.cc.

114 {
115 DB8 db;
116 unsigned char bytes[8];
117 if ( !byte_order_known ) fill_byte_order ();
118 bytes[0] = static_cast<unsigned char>((v[0] >> 24) & 0xFF);
119 bytes[1] = static_cast<unsigned char>((v[0] >> 16) & 0xFF);
120 bytes[2] = static_cast<unsigned char>((v[0] >> 8) & 0xFF);
121 bytes[3] = static_cast<unsigned char>((v[0] ) & 0xFF);
122 bytes[4] = static_cast<unsigned char>((v[1] >> 24) & 0xFF);
123 bytes[5] = static_cast<unsigned char>((v[1] >> 16) & 0xFF);
124 bytes[6] = static_cast<unsigned char>((v[1] >> 8) & 0xFF);
125 bytes[7] = static_cast<unsigned char>((v[1] ) & 0xFF);
126 for (int i=0; i<8; ++i) {
127 db.b[byte_order[i]] = bytes[i];
128 }
129 return db.d;
130}

Referenced by CLHEP::RandBinomial::get(), CLHEP::RandBreitWigner::get(), CLHEP::RandChiSquare::get(), CLHEP::RandExponential::get(), CLHEP::RandFlat::get(), CLHEP::RandGamma::get(), CLHEP::RandGauss::get(), CLHEP::RandGeneral::get(), CLHEP::RandPoisson::get(), CLHEP::RandPoissonQ::get(), CLHEP::RandStudentT::get(), CLHEP::HepJamesRandom::getState(), CLHEP::NonRandomEngine::getState(), CLHEP::Ranlux64Engine::getState(), CLHEP::RandGauss::restoreDistState(), and CLHEP::RandGauss::restoreEngineStatus().


The documentation for this class was generated from the following files: