Changeset 3599 in Sophya for trunk/SophyaLib/BaseTools/stsrand.h
- Timestamp:
- Apr 22, 2009, 12:56:23 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/BaseTools/stsrand.h
r3389 r3599 22 22 RandomGenerator(RandomGenerator const & rg); 23 23 24 void SetBuffSize(size_t n); 25 24 26 virtual ~RandomGenerator(); 25 27 … … 39 41 inline r_8 Flatpm1() {return 2.*Next()-1.;} 40 42 41 /*! \brief Return a random number following a gaussian distribution (sigma=1, mean=0 */43 /*! \brief Return a random number following a gaussian distribution (sigma=1, mean=0)*/ 42 44 virtual r_8 Gaussian(); 43 45 44 46 /*! \brief Return a random number following a gaussian distribution "sigma", (mean=0)*/ 45 virtual r_8 Gaussian(double sigma) 46 { return sigma*Gaussian(); } 47 virtual r_8 Gaussian(double sigma) {return sigma*Gaussian();} 47 48 /*! \brief Return a random number following a gaussian distribution with mean=mu, and sigma */ 48 virtual r_8 Gaussian(double sigma,double mu) 49 { return sigma*Gaussian()+mu; } 49 virtual r_8 Gaussian(double sigma,double mu) {return sigma*Gaussian()+mu;} 50 50 51 51 /*! \brief alias for Gaussian() */ 52 inline r_8 NorRand() 53 { return Gaussian(); } 52 inline r_8 NorRand() {return Gaussian();} 54 53 55 54 /*! \brief Return a random number following a poisson distribution with mean mu */ … … 57 56 58 57 /*! \brief Return a random number following a poisson distribution with mean mu */ 59 inline uint_8 Poisson(double mu) 60 { return Poisson(mu, -1.); } 58 inline uint_8 Poisson(double mu) {return Poisson(mu, -1.);} 61 59 62 60 /*! \brief Return a random number following a poisson distribution with mean mu */ 63 inline uint_8 PoissRandLimit(double mu,double mumax=10.) 64 { return Poisson(mu, mumax); } 61 inline uint_8 PoissRandLimit(double mu,double mumax=10.) {return Poisson(mu, mumax);} 62 63 /*! \brief Returns a random complex number such that real and imaginary parts are gaussians with variance sig^2 */ 64 inline complex< r_8 > ComplexGaussRan(void) 65 {return complex< r_8 >(NorRand(),NorRand());} 66 inline complex< r_8 > ComplexGaussRan(double sig) 67 {return complex< r_8 >(sig*NorRand(),sig*NorRand());} 68 /*! \brief Returns the module of a random complex number generated by ComplexGaussRan */ 69 inline double ModComplexGaussRan(double sig=1.) 70 {double r=-log(1.-Flat01()); return sig*sqrt(2.*r);} 71 65 72 66 73 // Pour la gestion de persistance PPF
Note:
See TracChangeset
for help on using the changeset viewer.