Main Page | Namespace List | Class Hierarchy | Compound List | File List | Namespace Members | Compound Members | File Members

RandomNumberGeneratorT< RK > Class Template Reference

#include <abkrand.h>

Inheritance diagram for RandomNumberGeneratorT< RK >:

Inheritance graph
[legend]
Collaboration diagram for RandomNumberGeneratorT< RK >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 RandomNumberGeneratorT (double _lowerBdry, double _upperBdry, unsigned seedN=UINT_MAX, Verbosity verb=Verbosity("silent"))
 RandomNumberGeneratorT (double _lowerBdry, double _upperBdry, const char *locIdent, unsigned counterOverride=UINT_MAX, Verbosity verb=Verbosity("silent"))
unsigned operator() (unsigned N)

Protected Member Functions

unsigned _getUnsignedRand ()
double _getDoubleRand ()

Protected Attributes

double _dLowerB
double _dUpperB
double _dDelta
unsigned _lowerB
unsigned _upperB
unsigned _delta

template<class RK>
class RandomNumberGeneratorT< RK >


Constructor & Destructor Documentation

template<class RK>
RandomNumberGeneratorT< RK >::RandomNumberGeneratorT double  _lowerBdry,
double  _upperBdry,
unsigned  seedN = UINT_MAX,
Verbosity  verb = Verbosity("silent")
[inline]
 

Definition at line 267 of file abkrand.h.

References RandomNumberGeneratorT< RK >::_dDelta, RandomNumberGeneratorT< RK >::_delta, RandomNumberGeneratorT< RK >::_dLowerB, RandomNumberGeneratorT< RK >::_dUpperB, RandomNumberGeneratorT< RK >::_lowerB, RandomNumberGeneratorT< RK >::_upperB, and abkfatal.

00270                              : RK(seedN,verb),
00271                              _dLowerB(_lowerBdry),_dUpperB(_upperBdry),
00272                              _dDelta(_upperBdry-_lowerBdry),
00273                              _lowerB(unsigned(_lowerBdry)),
00274                              _upperB(unsigned(_upperBdry))
00275         { 
00276         abkfatal(_lowerBdry<_upperBdry," Invalid range for random number generator");
00277         abkfatal(_dDelta>1e-4," Range too small for random number generator ");
00278         _delta=unsigned(_dDelta);
00279         if (_dDelta<1) _delta=1;
00280         }

template<class RK>
RandomNumberGeneratorT< RK >::RandomNumberGeneratorT double  _lowerBdry,
double  _upperBdry,
const char *  locIdent,
unsigned  counterOverride = UINT_MAX,
Verbosity  verb = Verbosity("silent")
[inline]
 

Definition at line 282 of file abkrand.h.

References RandomNumberGeneratorT< RK >::_dDelta, RandomNumberGeneratorT< RK >::_delta, RandomNumberGeneratorT< RK >::_dLowerB, RandomNumberGeneratorT< RK >::_dUpperB, RandomNumberGeneratorT< RK >::_lowerB, RandomNumberGeneratorT< RK >::_upperB, and abkfatal.

00286                              :
00287                              RK(locIdent,counterOverride,verb),
00288                              _dLowerB(_lowerBdry),_dUpperB(_upperBdry),
00289                              _dDelta(_upperBdry-_lowerBdry),
00290                              _lowerB(unsigned(_lowerBdry)),
00291                              _upperB(unsigned(_upperBdry))
00292         { 
00293         abkfatal(_lowerBdry<_upperBdry," Invalid range for random number generator");
00294         abkfatal(_dDelta>1e-4," Range too small for random number generator ");
00295         _delta=unsigned(_dDelta);
00296         if (_dDelta<1) _delta=1;
00297         }


Member Function Documentation

template<class RK>
double RandomNumberGeneratorT< RK >::_getDoubleRand  )  [inline, protected]
 

Definition at line 62 of file abkrand_templ.cxx.

References RandomNumberGeneratorT< RK >::_dDelta, and RandomNumberGeneratorT< RK >::_dLowerB.

Referenced by RandomDoubleT< RK >::operator double().

00063 {
00064 return RK::_getRawDouble()*_dDelta +_dLowerB;
00065 }

template<class RK>
unsigned RandomNumberGeneratorT< RK >::_getUnsignedRand  )  [inline, protected]
 

Definition at line 55 of file abkrand_templ.cxx.

References RandomNumberGeneratorT< RK >::_delta, and RandomNumberGeneratorT< RK >::_lowerB.

Referenced by RandomUnsignedT< RK >::operator unsigned().

00056 {
00057   return _lowerB + RK::_getRawUnsigned() % _delta;
00058 }

template<class RK>
unsigned RandomNumberGeneratorT< RK >::operator() unsigned  N  )  [inline]
 

Definition at line 299 of file abkrand.h.

References parquetfp::N.

00299 {return RK::_getRawUnsigned()%N;}


Member Data Documentation

template<class RK>
double RandomNumberGeneratorT< RK >::_dDelta [protected]
 

Definition at line 258 of file abkrand.h.

Referenced by RandomNumberGeneratorT< RK >::_getDoubleRand(), and RandomNumberGeneratorT< RK >::RandomNumberGeneratorT().

template<class RK>
unsigned RandomNumberGeneratorT< RK >::_delta [protected]
 

Definition at line 259 of file abkrand.h.

Referenced by RandomNumberGeneratorT< RK >::_getUnsignedRand(), and RandomNumberGeneratorT< RK >::RandomNumberGeneratorT().

template<class RK>
double RandomNumberGeneratorT< RK >::_dLowerB [protected]
 

Definition at line 258 of file abkrand.h.

Referenced by RandomNumberGeneratorT< RK >::_getDoubleRand(), and RandomNumberGeneratorT< RK >::RandomNumberGeneratorT().

template<class RK>
double RandomNumberGeneratorT< RK >::_dUpperB [protected]
 

Definition at line 258 of file abkrand.h.

Referenced by RandomNumberGeneratorT< RK >::RandomNumberGeneratorT().

template<class RK>
unsigned RandomNumberGeneratorT< RK >::_lowerB [protected]
 

Definition at line 259 of file abkrand.h.

Referenced by RandomNumberGeneratorT< RK >::_getUnsignedRand(), and RandomNumberGeneratorT< RK >::RandomNumberGeneratorT().

template<class RK>
unsigned RandomNumberGeneratorT< RK >::_upperB [protected]
 

Definition at line 259 of file abkrand.h.

Referenced by RandomNumberGeneratorT< RK >::RandomNumberGeneratorT().


The documentation for this class was generated from the following files:
Generated on Mon Apr 25 01:15:27 2005 for Parquete by doxygen 1.3.2