Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/src/engineIDulong.cc

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/src/engineIDulong.cc (Version 11.3.0) and /externals/clhep/src/engineIDulong.cc (Version 10.0)


                                                   >>   1 // $Id:$
  1 // -*- C++ -*-                                      2 // -*- C++ -*-
  2 //                                                  3 //
  3 // -------------------------------------------      4 // -----------------------------------------------------------------------
  4 //                             HEP Random           5 //                             HEP Random
  5 //                      --- engineIDulong ---       6 //                      --- engineIDulong ---
  6 //                      function implementatio      7 //                      function implementation file
  7 // -------------------------------------------      8 // -----------------------------------------------------------------------
  8 //                                                  9 //
  9 // ===========================================     10 // =======================================================================
 10 // Mark Fischler  - Created: Mar. 8, 2005          11 // Mark Fischler  - Created: Mar. 8, 2005
 11 // ===========================================     12 // =======================================================================
 12                                                    13 
 13 #include <string>                                  14 #include <string>
 14 #include <vector>                                  15 #include <vector>
 15                                                    16 
 16 namespace CLHEP {                                  17 namespace CLHEP {
 17                                                    18 
 18 static std::vector<unsigned long> gen_crc_tabl     19 static std::vector<unsigned long> gen_crc_table() {
 19   /* generate the table of CRC remainders for      20   /* generate the table of CRC remainders for all possible bytes */
 20   static const unsigned long POLYNOMIAL = 0x04     21   static const unsigned long POLYNOMIAL = 0x04c11db7UL;
 21   std::vector<unsigned long> crc_table;            22   std::vector<unsigned long> crc_table;
 22   for ( unsigned long i = 0;  i < 256;  ++i )      23   for ( unsigned long i = 0;  i < 256;  ++i ) {
 23     unsigned long crc = i << 24;                   24     unsigned long crc = i << 24;
 24     for ( int j = 0;  j < 8;  j++ ) {              25     for ( int j = 0;  j < 8;  j++ ) {
 25       if ( crc & 0x80000000UL ) {                  26       if ( crc & 0x80000000UL ) {
 26         crc = ( ( crc << 1 ) ^ POLYNOMIAL ) &      27         crc = ( ( crc << 1 ) ^ POLYNOMIAL ) & 0xffffffffUL;
 27       } else {                                     28       } else {
 28         crc = ( crc << 1 ) & 0xffffffffUL;         29         crc = ( crc << 1 ) & 0xffffffffUL; 
 29       }                                            30       }
 30     }                                              31     }
 31     crc_table.push_back(crc);                      32     crc_table.push_back(crc);
 32   }                                                33   }
 33   return crc_table;                                34   return crc_table;
 34 }                                                  35 }
 35                                                    36 
 36 unsigned long crc32ul(const std::string & s) {     37 unsigned long crc32ul(const std::string & s) {
 37   static const std::vector<unsigned long> crc_ <<  38   static std::vector<unsigned long> crc_table =  gen_crc_table();
 38   unsigned long crc = 0;                           39   unsigned long crc = 0;
 39   unsigned long end = s.length();              <<  40   int end = s.length();
 40   for (unsigned long j = 0; j != end; ++j) {   <<  41   for (int j = 0; j != end; ++j) {
 41     int i = ( (int) ( crc >> 24) ^ s[j] ) & 0x     42     int i = ( (int) ( crc >> 24) ^ s[j] ) & 0xff;
 42     crc = ( ( crc << 8 ) ^ crc_table[i] ) & 0x     43     crc = ( ( crc << 8 ) ^ crc_table[i] ) & 0xffffffffUL;
 43   }                                                44   }
 44   return crc;                                      45   return crc;
 45 }                                                  46 }
 46                                                    47 
 47 }  // namespace CLHEP                              48 }  // namespace CLHEP
 48                                                    49 
 49                                                    50