Geant4 Cross Reference

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


  1 // -*- C++ -*-                                      1 // -*- C++ -*-
  2 //                                                  2 //
  3 // -------------------------------------------      3 // -----------------------------------------------------------------------
  4 //                             HEP Random           4 //                             HEP Random
  5 //                         --- RandStudentT --      5 //                         --- RandStudentT ---
  6 //                          class header file       6 //                          class header file
  7 // -------------------------------------------      7 // -----------------------------------------------------------------------
  8                                                     8 
  9 // Class defining methods for shooting Student      9 // Class defining methods for shooting Student's t- distributed random 
 10 // values, given a number of degrees of freedo     10 // values, given a number of degrees of freedom a (default=1.0).
 11 // Default values are used for operator()().       11 // Default values are used for operator()().
 12                                                    12 
 13 // Valid input values are a > 0.  When invalid     13 // Valid input values are a > 0.  When invalid values are presented, the
 14 // code silently returns DBL_MAX from <float.h     14 // code silently returns DBL_MAX from <float.h> which is the same as
 15 // MAXDOUBLE in <values.h> on systems where th     15 // MAXDOUBLE in <values.h> on systems where the latter exists.
 16                                                    16 
 17 // ===========================================     17 // =======================================================================
 18 // John Marraffino - Created: Based on the C-R     18 // John Marraffino - Created: Based on the C-Rand package
 19 //                   by Ernst Stadlober and Fr     19 //                   by Ernst Stadlober and Franz Niederl of the Technical
 20 //                   University of Graz, Austr     20 //                   University of Graz, Austria : 12th May 1998
 21 //                 - Removed <values.h> becaus     21 //                 - Removed <values.h> because that won't work
 22 //                   on NT : 26th Jun 1998         22 //                   on NT : 26th Jun 1998
 23 // Gabriele Cosmo  - Fixed minor bug on inline     23 // Gabriele Cosmo  - Fixed minor bug on inline definition for shoot()
 24 //                   methods. Created .icc fil     24 //                   methods. Created .icc file : 20th Aug 1998
 25 //                 - Removed useless methods a     25 //                 - Removed useless methods and data: 5th Jan 1999
 26 // M Fischler      - put and get to/from strea     26 // M Fischler      - put and get to/from streams 12/10/04
 27 // ===========================================     27 // =======================================================================
 28                                                    28 
 29 #ifndef RandStudentT_h                             29 #ifndef RandStudentT_h
 30 #define RandStudentT_h 1                           30 #define RandStudentT_h 1
 31                                                    31 
 32 #include "CLHEP/Random/Random.h"                   32 #include "CLHEP/Random/Random.h"
 33 #include "CLHEP/Utility/memory.h"                  33 #include "CLHEP/Utility/memory.h"
 34                                                    34 
 35 namespace CLHEP {                                  35 namespace CLHEP {
 36                                                    36 
 37 /**                                                37 /**
 38  * @author                                         38  * @author
 39  * @ingroup random                                 39  * @ingroup random
 40  */                                                40  */
 41 class RandStudentT : public HepRandom {            41 class RandStudentT : public HepRandom {
 42                                                    42 
 43 public:                                            43 public:
 44                                                    44 
 45   inline RandStudentT ( HepRandomEngine& anEng     45   inline RandStudentT ( HepRandomEngine& anEngine, double a=1.0 );
 46   inline RandStudentT ( HepRandomEngine* anEng     46   inline RandStudentT ( HepRandomEngine* anEngine, double a=1.0 );
 47   // These constructors should be used to inst     47   // These constructors should be used to instantiate a RandStudentT
 48   // distribution object defining a local engi     48   // distribution object defining a local engine for it.
 49   // The static generator will be skipped usin     49   // The static generator will be skipped using the non-static methods
 50   // defined below.                                50   // defined below.
 51   // If the engine is passed by pointer the co     51   // If the engine is passed by pointer the corresponding engine object
 52   // will be deleted by the RandStudentT destr     52   // will be deleted by the RandStudentT destructor.
 53   // If the engine is passed by reference the      53   // If the engine is passed by reference the corresponding engine object
 54   // will not be deleted by the RandStudentT d     54   // will not be deleted by the RandStudentT destructor.
 55                                                    55 
 56   virtual ~RandStudentT();                         56   virtual ~RandStudentT();
 57   // Destructor                                    57   // Destructor
 58                                                    58 
 59   // Save and restore to/from streams              59   // Save and restore to/from streams
 60                                                    60   
 61   std::ostream & put ( std::ostream & os ) con     61   std::ostream & put ( std::ostream & os ) const;
 62   std::istream & get ( std::istream & is );        62   std::istream & get ( std::istream & is );
 63                                                    63 
 64   // Static methods to shoot random values usi     64   // Static methods to shoot random values using the static generator
 65                                                    65 
 66   static  inline double shoot();                   66   static  inline double shoot();
 67                                                    67 
 68   static  double shoot( double a );                68   static  double shoot( double a );
 69                                                    69 
 70   static  void shootArray ( const int size, do     70   static  void shootArray ( const int size, double* vect,
 71                             double a=1.0 );        71                             double a=1.0 );
 72                                                    72 
 73   //  Static methods to shoot random values us     73   //  Static methods to shoot random values using a given engine
 74   //  by-passing the static generator.             74   //  by-passing the static generator.
 75                                                    75 
 76   static  inline double shoot( HepRandomEngine     76   static  inline double shoot( HepRandomEngine* anEngine );
 77                                                    77 
 78   static  double shoot( HepRandomEngine* anEng     78   static  double shoot( HepRandomEngine* anEngine, 
 79                            double a );             79                            double a );
 80                                                    80 
 81   static  void shootArray ( HepRandomEngine* a     81   static  void shootArray ( HepRandomEngine* anEngine, const int size,
 82                             double* vect, doub     82                             double* vect, double a=1.0 );
 83                                                    83 
 84   //  Methods using the localEngine to shoot r     84   //  Methods using the localEngine to shoot random values, by-passing
 85   //  the static generator.                        85   //  the static generator.
 86                                                    86 
 87   inline double fire();                            87   inline double fire();
 88                                                    88 
 89   double fire( double a );                         89   double fire( double a );
 90                                                    90   
 91   void fireArray ( const int size, double* vec     91   void fireArray ( const int size, double* vect );
 92   void fireArray ( const int size, double* vec     92   void fireArray ( const int size, double* vect, double a );
 93   double operator()();                             93   double operator()();
 94   double operator()( double a );                   94   double operator()( double a );
 95                                                    95 
 96   std::string name() const;                        96   std::string name() const;
 97   HepRandomEngine & engine();                      97   HepRandomEngine & engine();
 98                                                    98 
 99   static std::string distributionName() {retur     99   static std::string distributionName() {return "RandStudentT";}  
100   // Provides the name of this distribution cl    100   // Provides the name of this distribution class
101                                                   101 
102                                                   102 
103 private:                                          103 private:
104                                                   104 
105   std::shared_ptr<HepRandomEngine> localEngine    105   std::shared_ptr<HepRandomEngine> localEngine;
106   double defaultA;                                106   double defaultA;
107                                                   107 
108 };                                                108 };
109                                                   109 
110 }  // namespace CLHEP                             110 }  // namespace CLHEP
111                                                   111 
112 #include "CLHEP/Random/RandStudentT.icc"          112 #include "CLHEP/Random/RandStudentT.icc"
113                                                   113 
114 #endif                                            114 #endif
115                                                   115