ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/math/RandNumGen.hpp
(Generate patch)

Comparing trunk/OOPSE-4/src/math/RandNumGen.hpp (file contents):
Revision 2078 by tim, Wed Mar 2 16:29:47 2005 UTC vs.
Revision 2759 by tim, Wed May 17 21:51:42 2006 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# Line 43 | Line 43
43   #define MATH_RANDNUMGEN_HPP
44  
45   #include <vector>
46 + #include "config.h"
47   #include "MersenneTwister.hpp"
48   #include "utils/simError.h"
49  
# Line 51 | Line 52 | namespace oopse {
52  
53  
54  
55 < /**
56 < * @class RandNumGen a random number generator class
57 < */
58 < class RandNumGen{
59 <    public:
60 <        typedef unsigned long uint32;
55 >  /**
56 >   * @class RandNumGen a random number generator class
57 >   */
58 >  class RandNumGen{
59 >  public:
60 >    typedef unsigned long uint32;
61          
62 <        virtual ~RandNumGen() {
63 <            delete mtRand_;
64 <        }
62 >    virtual ~RandNumGen() {
63 >      delete mtRand_;
64 >    }
65          
66 <        /** Returns a real number in [0,1] */
67 <        double rand() {
68 <            return mtRand_->rand();
69 <        }
66 >    /** Returns a real number in [0,1] */
67 >    RealType rand() {
68 >      return mtRand_->rand();
69 >    }
70  
71 <        /** Returns a real number in [0, n] */
72 <        double rand( const double& n ) {
73 <            return mtRand_->rand(n);
74 <        }
71 >    /** Returns a real number in [0, n] */
72 >    RealType rand( const RealType& n ) {
73 >      return mtRand_->rand(n);
74 >    }
75  
76 <        /** Returns a real number in [0, 1) */
77 <        double randExc() {
78 <            return mtRand_->randExc();
79 <        }
76 >    /** Returns a real number in [0, 1) */
77 >    RealType randExc() {
78 >      return mtRand_->randExc();
79 >    }
80  
81 <        /** Returns a real number in [0, n) */        
82 <        double randExc( const double& n ) {
83 <            return mtRand_->randExc(n);
84 <        }
81 >    /** Returns a real number in [0, n) */        
82 >    RealType randExc( const RealType& n ) {
83 >      return mtRand_->randExc(n);
84 >    }
85  
86 <        /** Returns a real number in (0, 1) */                
87 <        double randDblExc() {
88 <            return mtRand_->randDblExc();
89 <        }
86 >    /** Returns a real number in (0, 1) */                
87 >    RealType randDblExc() {
88 >      return mtRand_->randDblExc();
89 >    }
90  
91 <        /** Returns a real number in (0, n) */                        
92 <        double randDblExc( const double& n ) {
93 <            return mtRand_->randDblExc(n);
94 <        }
91 >    /** Returns a real number in (0, n) */                        
92 >    RealType randDblExc( const RealType& n ) {
93 >      return mtRand_->randDblExc(n);
94 >    }
95  
96 <        /** Returns aninteger in [0,2^32-1]  */            
97 <        uint32 randInt() {
98 <           return mtRand_->randInt();
99 <        }
96 >    /** Returns aninteger in [0,2^32-1]  */            
97 >    uint32 randInt() {
98 >      return mtRand_->randInt();
99 >    }
100  
101 <        /** Returns aninteger in [0, n]  for n < 2^32 */    
102 <        uint32 randInt( const uint32& n ) {
103 <           return mtRand_->randInt(n);
104 <        }
101 >    /** Returns aninteger in [0, n]  for n < 2^32 */    
102 >    uint32 randInt( const uint32& n ) {
103 >      return mtRand_->randInt(n);
104 >    }
105          
106 <        /** Returns a 53-bitreal number in [0,1) (capacity of IEEE double precision) */
107 <        double rand53() {
108 <            return mtRand_->rand53();
109 <        }
106 >    /** Returns a 53-bitreal number in [0,1) (capacity of IEEE RealType precision) */
107 >    RealType rand53() {
108 >      return mtRand_->rand53();
109 >    }
110          
111 <        /** Access to nonuniform random number distributions */
112 <        double randNorm( const double& mean, const double& variance) {
113 <            return mtRand_->randNorm(mean, variance);
114 <        }
111 >    /** Access to nonuniform random number distributions */
112 >    RealType randNorm( const RealType mean, const RealType variance) {
113 >      return mtRand_->randNorm(mean, variance);
114 >    }
115          
116 <        // Re-seeding functions with same behavior as initializers
117 <        virtual void seed( const uint32 oneSeed ) = 0;
116 >    // Re-seeding functions with same behavior as initializers
117 >    virtual void seed( const uint32 oneSeed ) = 0;
118          
119 <        virtual void seed()= 0;
119 >    virtual void seed()= 0;
120  
121 <    protected:
121 >  protected:
122          
123 <        MTRand* mtRand_;
123 >    MTRand* mtRand_;
124  
125  
126 < };
126 >  };
127  
128   }
129  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines