Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/include/CLHEP/Random/RandBit.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/RandBit.h (Version 11.3.0) and /externals/clhep/include/CLHEP/Random/RandBit.h (Version 10.1)


                                                   >>   1 // $Id:$
  1 // -*- C++ -*-                                      2 // -*- C++ -*-
  2 //                                                  3 //
  3 // -------------------------------------------      4 // -----------------------------------------------------------------------
  4 //                             HEP Random           5 //                             HEP Random
  5 //                           --- RandBit ---        6 //                           --- RandBit ---
  6 //                          class header file       7 //                          class header file
  7 // -------------------------------------------      8 // -----------------------------------------------------------------------
  8 //                                                  9 // 
  9                                                    10 
 10 // Class defining methods for shooting Flat or     11 // Class defining methods for shooting Flat or Bit random numbers, double or
 11 // integers.                                       12 // integers.
 12 // It provides methods to fill with double fla     13 // It provides methods to fill with double flat values arrays of
 13 // specified size, as well as methods for shoo     14 // specified size, as well as methods for shooting sequences of 0,1 (bits).
 14 // Default boundaries ]0.1[ for operator()().      15 // Default boundaries ]0.1[ for operator()().
 15                                                    16 
 16 // This is derived from RandFlat and is a drop     17 // This is derived from RandFlat and is a drop-in replacement.  However
 17 // the shootBit() and fireBit() methods are st     18 // the shootBit() and fireBit() methods are stateless (which makes them
 18 // an order of magnitude slower, but allows sa     19 // an order of magnitude slower, but allows save/restore engine status
 19 // to work correctly).                             20 // to work correctly).
 20                                                    21 
 21 // ===========================================     22 // =======================================================================
 22 // M. Fischler    - Created: 15th Feb 2000         23 // M. Fischler    - Created: 15th Feb 2000
 23 // M Fischler      - put and get to/from strea     24 // M Fischler      - put and get to/from streams 12/10/04
 24 // M Fischler      - static save/restore to st     25 // M Fischler      - static save/restore to streams streams 12/20/04
 25 // ===========================================     26 // =======================================================================
 26                                                    27 
 27 #ifndef RandBit_h                                  28 #ifndef RandBit_h
 28 #define RandBit_h 1                                29 #define RandBit_h 1
 29                                                    30 
 30 #include "CLHEP/Random/RandFlat.h"                 31 #include "CLHEP/Random/RandFlat.h"
 31                                                    32 
 32 namespace CLHEP {                                  33 namespace CLHEP {
 33                                                    34 
 34 /**                                                35 /**
 35  * @author                                         36  * @author
 36  * @ingroup random                                 37  * @ingroup random
 37  */                                                38  */
 38 class RandBit : public RandFlat {                  39 class RandBit : public RandFlat {
 39                                                    40 
 40 public:                                            41 public:
 41                                                    42 
 42   inline RandBit ( HepRandomEngine& anEngine )     43   inline RandBit ( HepRandomEngine& anEngine );
 43   inline RandBit ( HepRandomEngine& anEngine,      44   inline RandBit ( HepRandomEngine& anEngine, double width );
 44   inline RandBit ( HepRandomEngine& anEngine,      45   inline RandBit ( HepRandomEngine& anEngine, double a, double b );
 45   inline RandBit ( HepRandomEngine* anEngine )     46   inline RandBit ( HepRandomEngine* anEngine );
 46   inline RandBit ( HepRandomEngine* anEngine,      47   inline RandBit ( HepRandomEngine* anEngine, double width );
 47   inline RandBit ( HepRandomEngine* anEngine,      48   inline RandBit ( HepRandomEngine* anEngine, double a, double b );
 48   // These constructors should be used to inst     49   // These constructors should be used to instantiate a RandBit
 49   // distribution object defining a local engi     50   // distribution object defining a local engine for it.
 50   // The static generator will be skipped usin     51   // The static generator will be skipped using the non-static methods
 51   // defined below.                                52   // defined below.
 52   // If the engine is passed by pointer the co     53   // If the engine is passed by pointer the corresponding engine object
 53   // will be deleted by the RandBit destructor     54   // will be deleted by the RandBit destructor.
 54   // If the engine is passed by reference the      55   // If the engine is passed by reference the corresponding engine object
 55   // will not be deleted by the RandBit destru     56   // will not be deleted by the RandBit destructor.
 56                                                    57 
 57   virtual ~RandBit();                              58   virtual ~RandBit();
 58   // Destructor                                    59   // Destructor
 59                                                    60 
 60   // Other than the Bit routines, constructors     61   // Other than the Bit routines, constructors, and destructor, everything is
 61   // simply inherited from RandFlat.               62   // simply inherited from RandFlat.
 62                                                    63 
 63   static  inline int shootBit();                   64   static  inline int shootBit();
 64                                                    65 
 65   static  inline int shootBit( HepRandomEngine     66   static  inline int shootBit( HepRandomEngine* );
 66                                                    67 
 67   //  Methods using the localEngine to shoot r     68   //  Methods using the localEngine to shoot random values, by-passing
 68   //  the static generator.                        69   //  the static generator.
 69                                                    70 
 70   inline int fireBit();                            71   inline int fireBit();
 71                                                    72 
 72   // Save and restore to/from streams              73   // Save and restore to/from streams
 73                                                    74   
 74   std::ostream & put ( std::ostream & os ) con     75   std::ostream & put ( std::ostream & os ) const;
 75   std::istream & get ( std::istream & is );        76   std::istream & get ( std::istream & is );
 76                                                    77 
 77   std::string name() const;                        78   std::string name() const;
 78                                                    79 
 79   static std::string distributionName() {retur     80   static std::string distributionName() {return "RandBit";}  
 80   // Provides the name of this distribution cl     81   // Provides the name of this distribution class
 81                                                    82 
 82   static std::ostream& saveFullState ( std::os     83   static std::ostream& saveFullState ( std::ostream & os ) 
 83   // Saves to stream the state of the engine a     84   // Saves to stream the state of the engine and cached data.
 84             {return RandFlat::saveFullState(os     85             {return RandFlat::saveFullState(os);}
 85                                                    86           
 86   static std::istream& restoreFullState ( std:     87   static std::istream& restoreFullState ( std::istream & is )
 87   // Restores from stream the state of the eng     88   // Restores from stream the state of the engine and cached data.
 88             {return RandFlat::restoreFullState     89             {return RandFlat::restoreFullState(is);}
 89                                                    90 
 90   static std::ostream& saveDistState ( std::os     91   static std::ostream& saveDistState ( std::ostream & os )
 91   // Saves to stream the state of the cached d     92   // Saves to stream the state of the cached data.
 92             {return RandFlat::saveDistState(os     93             {return RandFlat::saveDistState(os);}
 93                                                    94 
 94   static std::istream& restoreDistState ( std:     95   static std::istream& restoreDistState ( std::istream & is )
 95   // Restores from stream the state of the cac     96   // Restores from stream the state of the cached data.
 96             {return RandFlat::restoreDistState     97             {return RandFlat::restoreDistState(is);}
 97                                                    98 
 98                                                    99 
 99 private:                                          100 private:
100                                                   101 
101   // All the engine info, and the default A an    102   // All the engine info, and the default A and B, are in the RandFlat
102   // base class.                                  103   // base class.
103                                                   104 
104 };                                                105 };
105                                                   106 
106 }  // namespace CLHEP                             107 }  // namespace CLHEP
107                                                   108 
108 #include "CLHEP/Random/RandBit.icc"               109 #include "CLHEP/Random/RandBit.icc"
109                                                   110 
110 #endif                                            111 #endif
111                                                   112