Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/include/CLHEP/Random/DoubConv.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/clhep/include/CLHEP/Random/DoubConv.h (Version 11.3.0) and /externals/clhep/include/CLHEP/Random/DoubConv.h (Version 9.3.p2)


  1 // -*- C++ -*-                                      1 
  2 //                                                
  3 // -------------------------------------------    
  4 //                           Hep Random           
  5 //                        --- DoubConv ---        
  6 //                        class header file       
  7 // -------------------------------------------    
  8 //                                                
  9 #ifndef DOUBCONV_HH                               
 10 #define DOUBCONV_HH                               
 11                                                   
 12 #include <string>                                 
 13 #include <vector>                                 
 14 #include <exception>                              
 15 #include "CLHEP/Utility/thread_local.h"           
 16                                                   
 17 namespace CLHEP {                                 
 18                                                   
 19 class DoubConvException  : public std::excepti    
 20 public:                                           
 21   DoubConvException(const std::string & w) thr    
 22   ~DoubConvException() throw() {}                 
 23   const char* what() const throw() { return ms    
 24 private:                                          
 25   std::string msg;                                
 26 };                                                
 27                                                   
 28 class DoubConv {                                  
 29 public:                                           
 30                                                   
 31   // dto2longs(d) returns (in a vector) two un    
 32   // representation of its double input.  This    
 33   // independant, and depends for complete por    
 34   // to the IEEE 754 standard for 64-bit float    
 35   // The first unsigned long contains the high    
 36   // 1.0 will always be 0x3FF00000, 00000000      
 37   static std::vector<unsigned long> dto2longs(    
 38                                                   
 39   // longs2double (v) returns a double contain    
 40   // input, which must be a vector containing     
 41   // The input is taken to be the representati    
 42   // the IEEE 754 standard for a 64-bit floati    
 43   // is returned as a double.  The byte-orderi    
 44   // of course, tailored to the proper byte-or    
 45   static double longs2double (const std::vecto    
 46                                                   
 47   // dtox(d) returns a 16-character string con    
 48   // representation of its double input.  This    
 49   // independant, and depends for complete por    
 50   // to the IEEE 754 standard for 64-bit float    
 51   static std::string d2x(double d);               
 52                                                   
 53 private:                                          
 54   union DB8 {                                     
 55     unsigned char b[8];                           
 56     double d;                                     
 57   };                                              
 58   static void fill_byte_order ();                 
 59   static CLHEP_THREAD_LOCAL bool byte_order_kn    
 60   static CLHEP_THREAD_LOCAL int  byte_order[8]    
 61     // Meaning of byte_order:  The first (high    
 62     // output (or the high-order byte of the f    
 63     // is  of db.b[byte_order[0]].  Thus the i    
 64     // is a position in the IEEE representatio    
 65     // of byte_order[k] is an offset in the me    
 66     // double.                                    
 67 };                                                
 68                                                   
 69                                                   
 70 }                                                 
 71                                                   
 72 #endif // DOUBCONV_HH                             
 73