merge with HEAD
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 27 Mar 2008 09:13:41 -0700
changeset 2763 d176f1a877e3
parent 2761 9a9e6a4187f8 (current diff)
parent 2762 f56860663c54 (diff)
child 2764 51aaeee97290
merge with HEAD
--- a/src/core/random-variable.h	Thu Mar 27 09:13:29 2008 -0700
+++ b/src/core/random-variable.h	Thu Mar 27 09:13:41 2008 -0700
@@ -48,7 +48,7 @@
  * the University of Montreal.
  * 
  * NS-3 has a rich set of  random number generators.
- * Class RandomVariableBase defines the base class functionalty
+ * Class RandomVariable defines the base class functionalty
  * required for all random number generators.  By default, the underlying
  * generator is seeded with the time of day, and then deterministically
  * creates a sequence of seeds for each subsequent generator that is created.
@@ -93,7 +93,7 @@
    * generator is seeded with data from /dev/random instead of
    * being seeded based upon the time of day.  For this to be effective,
    * it must be called before the creation of the first instance of a 
-   * RandomVariableBase or subclass.  Example:
+   * RandomVariable or subclass.  Example:
    * \code
    * RandomVariable::UseDevRandom();
    * UniformVariable x(2,3);  //these are seeded randomly
@@ -221,19 +221,19 @@
  * \brief A random variable that returns a constant
  * \ingroup randomvariable
  *
- * Class ConstantVariableImpl defines a random number generator that
+ * Class ConstantVariable defines a random number generator that
  * returns the same value every sample.
  */
 class ConstantVariable : public RandomVariable { 
 
 public:
   /**
-   * Construct a ConstantVariableImpl RNG that returns zero every sample
+   * Construct a ConstantVariable RNG that returns zero every sample
    */
   ConstantVariable();
   
   /**
-   * Construct a ConstantVariableImpl RNG that returns the specified value
+   * Construct a ConstantVariable RNG that returns the specified value
    * every sample.
    * \param c Unchanging value for this RNG.
    */
@@ -260,10 +260,10 @@
 {
 public:
   /**
-   * \brief Constructor for the SequentialVariableImpl RNG.
+   * \brief Constructor for the SequentialVariable RNG.
    *
    * The four parameters define the sequence.  For example
-   * SequentialVariableImpl(0,5,1,2) creates a RNG that has the sequence
+   * SequentialVariable(0,5,1,2) creates a RNG that has the sequence
    * 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 0, 0 ...
    * \param f First value of the sequence.
    * \param l One more than the last value of the sequence.
@@ -273,13 +273,13 @@
   SequentialVariable(double f, double l, double i = 1, uint32_t c = 1);
 
   /**
-   * \brief Constructor for the SequentialVariableImpl RNG.
+   * \brief Constructor for the SequentialVariable RNG.
    *
    * Differs from the first only in that the increment parameter is a
    * random variable
    * \param f First value of the sequence.
    * \param l One more than the last value of the sequence.
-   * \param i Reference to a RandomVariableBase for the sequence increment
+   * \param i Reference to a RandomVariable for the sequence increment
    * \param c Number of times each member of the sequence is repeated
    */
   SequentialVariable(double f, double l, const RandomVariable& i, uint32_t c = 1);
@@ -303,10 +303,10 @@
  * \f$ \left\{ \begin{array}{cl} \alpha  e^{-\alpha x} & x < bound \\ bound & x > bound \end{array}\right. \f$
  * 
  * \code
- * ExponentialVariableImpl x(3.14);
+ * ExponentialVariable x(3.14);
  * x.GetValue();  //will always return with mean 3.14
- * ExponentialVariableImpl::GetSingleValue(20.1); //returns with mean 20.1
- * ExponentialVariableImpl::GetSingleValue(108); //returns with mean 108
+ * ExponentialVariable::GetSingleValue(20.1); //returns with mean 20.1
+ * ExponentialVariable::GetSingleValue(108); //returns with mean 108
  * \endcode
  *
  */
@@ -347,7 +347,7 @@
 };
 
 /**
- * \brief ParetoVariableImpl distributed random var
+ * \brief ParetoVariable distributed random var
  * \ingroup randomvariable
  *
  * This class supports the creation of objects that return random numbers
@@ -362,10 +362,10 @@
  * with the equation \f$ x_m = mean \frac{k-1}{k},  k > 1\f$.
  *
  * \code
- * ParetoVariableImpl x(3.14);
+ * ParetoVariable x(3.14);
  * x.GetValue();  //will always return with mean 3.14
- * ParetoVariableImpl::GetSingleValue(20.1); //returns with mean 20.1
- * ParetoVariableImpl::GetSingleValue(108); //returns with mean 108
+ * ParetoVariable::GetSingleValue(20.1); //returns with mean 20.1
+ * ParetoVariable::GetSingleValue(108); //returns with mean 108
  * \endcode
  */
 class ParetoVariable : public RandomVariable
@@ -419,7 +419,7 @@
 };
 
 /**
- * \brief WeibullVariableImpl distributed random var
+ * \brief WeibullVariable distributed random var
  * \ingroup randomvariable
  *
  * This class supports the creation of objects that return random numbers
@@ -459,7 +459,7 @@
    /**
    * \brief Constructs a weibull random variable with the specified mean
    * \brief value, shape (alpha), and upper bound.
-   * Since WeibullVariableImpl distributions can theoretically return unbounded values,
+   * Since WeibullVariable distributions can theoretically return unbounded values,
    * it is sometimes usefull to specify a fixed upper limit.  Note however
    * that when the upper limit is specified, the true mean of the distribution
    * is slightly smaller than the mean value specified.
@@ -478,7 +478,7 @@
 };
 
 /**
- * \brief Class NormalVariableImpl defines a random variable with a
+ * \brief Class NormalVariable defines a random variable with a
  * normal (Gaussian) distribution.
  * \ingroup randomvariable
  * 
@@ -505,20 +505,20 @@
    * \brief Construct a normal random variable with specified mean and variance
    * \param m Mean value
    * \param v Variance
-   * \param b Bound.  The NormalVariableImpl is bounded within +-bound.
+   * \param b Bound.  The NormalVariable is bounded within +-bound.
    */ 
   NormalVariable(double m, double v, double b = INFINITE_VALUE);
   /**
    * \param m Mean value
    * \param v Variance
-   * \param b Bound.  The NormalVariableImpl is bounded within +-bound.
+   * \param b Bound.  The NormalVariable is bounded within +-bound.
    * \return A random number from a distribution specified by m,v, and b.
    */ 
   static double GetSingleValue(double m, double v, double b = INFINITE_VALUE);
 };
 
 /**
- * \brief EmpiricalVariableImpl distribution random var
+ * \brief EmpiricalVariable distribution random var
  * \ingroup randomvariable
  *
  * Defines a random variable  that has a specified, empirical 
@@ -528,12 +528,14 @@
  * the specified value.  When values are requested,
  * a uniform random variable is used to select a probabililty,
  * and the return value is interpreted linerarly between the
- * two appropriate points in the CDF
+ * two appropriate points in the CDF.  The method is known
+ * as inverse transform sampling:
+ * (http://en.wikipedia.org/wiki/Inverse_transform_sampling).
  */
 class EmpiricalVariable : public RandomVariable {
 public:
   /**
-   * Constructor for the EmpiricalVariableImpl random variables.
+   * Constructor for the EmpiricalVariable random variables.
    */
   explicit EmpiricalVariable();
 
@@ -552,8 +554,9 @@
  * \ingroup randomvariable
  *
  * Defines an empirical distribution where all values are integers.
- * Indentical to EmpiricalVariableImpl, but with slightly different
- * interpolation between points.
+ * Indentical to EmpiricalVariable, except that the inverse transform
+ * sampling interpolation described in the EmpiricalVariable documentation
+ * is modified to only return integers.
  */
 class IntEmpiricalVariable : public EmpiricalVariable 
 {
@@ -580,7 +583,7 @@
    * on successive calls to ::Value().  Note that the d pointer is copied
    * for use by the generator (shallow-copy), not its contents, so the 
    * contents of the array d points to have to remain unchanged for the use 
-   * of DeterministicVariableImpl to be meaningful.
+   * of DeterministicVariable to be meaningful.
    * \param d Pointer to array of random values to return in sequence
    * \param c Number of values in the array
    */
@@ -592,7 +595,7 @@
  * \brief Log-normal Distributed random var
  * \ingroup randomvariable
  *
- * LogNormalVariableImpl defines a random variable with log-normal
+ * LogNormalVariable defines a random variable with log-normal
  * distribution.  If one takes the natural logarithm of random
  * variable following the log-normal distribution, the obtained values
  * follow a normal distribution.