casa::Random Class Reference
[BasicMath]

#include <Random.h>

Inheritance diagram for casa::Random:

Inheritance graph
[legend]
Collaboration diagram for casa::Random:

Collaboration graph
[legend]
List of all members.

Detailed Description

Base class for random number distributions.

Intended use:

Part of API

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Prerequisite

Synopsis

A random number generator may be declared by first constructing a RNG object and then a Random. For example,

      ACG gen(10, 20); 
      NegativeExpntl rnd (1.0, &gen);
declares an additive congruential generator with seed 10 and table size 20, that is used to generate exponentially distributed values with mean of 1.0.

The virtual member Random::operator() is the common way of extracting a random number from a particular distribution. The base class, Random does not implement operator(). This is performed by each of the derived classes. Thus, given the above declaration of rnd, new random values may be obtained via, for example, Double nextExpRand = rnd();

Currently, the following subclasses are provided:

Example

Thrown Exceptions

To Do

Definition at line 425 of file Random.h.

Public Types

enum  Types
 This enumerator lists all the predefined random number distributions. More...

Public Member Functions

virtual ~Random ()
 A virtual destructor is needed to ensure that the destructor of derived classes gets used.
virtual Double operator() ()=0
 This function returns a random number from the appropriate distribution.
RNGgenerator ()
 Functions that allow you to access and change the class that generates the random bits.
void generator (RNG *p)
virtual void setParameters (const Vector< Double > &parms)=0
 These function allow you to manipulate the parameters (mean variance etc.
virtual Vector< Doubleparameters () const=0
virtual Bool checkParameters (const Vector< Double > &parms) const =0

Static Public Member Functions

static String asString (Random::Types type)
 Convert the enumerator to a lower-case string.
static Random::Types asType (const String &str)
 Convert the string to enumerator.
static Randomconstruct (Random::Types type, RNG *gen)
 Convert the Random::Type enumerator to a specific object (derived from Random but upcast to a Random object).
static Vector< DoubledefaultParameters (Random::Types type)
 returns the default parameters for the specified distribution.

Protected Member Functions

 Random (RNG *generator)

Protected Attributes

RNGitsRNG


Member Enumeration Documentation

enum casa::Random::Types

This enumerator lists all the predefined random number distributions.

Definition at line 429 of file Random.h.


Constructor & Destructor Documentation

virtual casa::Random::~Random (  )  [virtual]

A virtual destructor is needed to ensure that the destructor of derived classes gets used.

Not that this destructor does NOT delete the pointer to the RNG object

casa::Random::Random ( RNG generator  )  [inline, protected]

Definition at line 538 of file Random.h.

References itsRNG.


Member Function Documentation

virtual Double casa::Random::operator() (  )  [pure virtual]

This function returns a random number from the appropriate distribution.

RNG * casa::Random::generator (  )  [inline]

Functions that allow you to access and change the class that generates the random bits.

Definition at line 543 of file Random.h.

References itsRNG.

void casa::Random::generator ( RNG p  )  [inline]

Definition at line 548 of file Random.h.

References itsRNG.

static String casa::Random::asString ( Random::Types  type  )  [static]

Convert the enumerator to a lower-case string.

static Random::Types casa::Random::asType ( const String str  )  [static]

Convert the string to enumerator.

The parsing of the string is case insensitive. Returns the Random::UNKNOWN value if the string does not cotrtrespond to any of the enumerators.

static Random* casa::Random::construct ( Random::Types  type,
RNG gen 
) [static]

Convert the Random::Type enumerator to a specific object (derived from Random but upcast to a Random object).

Returns a null pointer if the object could not be constructed. This will occur is the enumerator is UNKNOWN or NUMBER_TYPES or there is insufficient memory. The caller of this function is responsible for deleting the pointer.

virtual void casa::Random::setParameters ( const Vector< Double > &  parms  )  [pure virtual]

These function allow you to manipulate the parameters (mean variance etc.

) of random number distribution. The parameters() function returns the current value, the setParameters function allows you to change the parameters and the checkParameters function will return False if the supplied parameters are not appropriate for the distribution.

virtual Vector<Double> casa::Random::parameters (  )  const [pure virtual]

virtual Bool casa::Random::checkParameters ( const Vector< Double > &  parms  )  const [pure virtual]

static Vector<Double> casa::Random::defaultParameters ( Random::Types  type  )  [static]

returns the default parameters for the specified distribution.

Returns an empty Vector if a non-predifined distribution is used.


Member Data Documentation

RNG* casa::Random::itsRNG [protected]

Definition at line 535 of file Random.h.

Referenced by generator(), and Random().


The documentation for this class was generated from the following file:
Generated on Mon Sep 1 22:43:50 2008 for NRAOCASA by  doxygen 1.5.1