(* source: h:\modula\defs\XpnlRNG.DEF     v1.0a             revised: 88.06.09
   author: G.Greene, AGCS D/429 (NS/TS), 312/681-7783       created: 88.06.09

   function:
    This is the interface for a package which exports a generator for
    exponentially-distributed pseudo-random variates.  The numbers are in
    the form of double-precision reals.

   history:
    88.06.09  1.0a  initial release
*)

DEFINITION MODULE  XpnlRNG;


(*  Return as the function value an exponentially-distributed LongReal value,
    with mean (= standard deviation) specified by the parameter.
*)

PROCEDURE  ExponentialVariate (
                       (*in*)  Mean: REAL ): LONGREAL;



(*  Return as the function value a random variate of the Weibull
    distribution with characteristic life and shape parameters specified
    by the corresponding function parameters.  Both parameters must be
    greater than zero (the function returns -1, otherwise).  Possible
    valid values of the function range from zero to +infinity.
*)

PROCEDURE  WeibullVariate (
                   (*in*)  CharacteristicLife: REAL;
                   (*in*)  Shape:              REAL ): LONGREAL;



(*  Return as the function value a random variate of the logistic
    distribution, with mean and standard deviation specified by the
    corresponding function parameters.
*)

PROCEDURE  LogisticVariate (
                    (*in*)  Mean:    REAL;
                    (*in*)  StdDev:  REAL ): LONGREAL;



(*  Return as the function value a variate of the extreme-value distribution.
    The mode and scale of the distribution are specified by the corresponding
    function parameters.
*)

PROCEDURE  ExtremeValueVariate (
                        (*in*)  Mode:   REAL;
                        (*in*)  Scale:  REAL ): LONGREAL;

END  XpnlRNG.
