XLISP-STAT has several functions for generating pseudo-random numbers. For example, the expression
(uniform-rand 50)will generate a list of 50 independent uniform random variables. The functions normal-rand and cauchy-rand work similarly. Other generating functions require additional arguments to specify distribution parameters. Here is a list of the functions available for dealing with probability distributions:
More information on the required arguments is given in the appendix in Section . The discrete quantile functions binomial-quant and poisson-quant return values of a left continuous inverse of the cdf. The pmf's for these distributions are only defined for integer arguments. The quantile functions and random variable generators for the beta, gamma, , t and F distributions are presently calculated by inverting the cdf and may be a bit slow.
The state of the internal random number generator can be ``randomly'' reseeded, and the current value of the generator state can be saved. The mechanism used is the standard Common Lisp mechanism. The current random state is held in the variable *random-state*. The function make-random-state can be used to set and save the state. It takes an optional argument. If the argument is NIL or omitted make-random-state returns a copy of the current value of *random-state*. If the argument is a state object a copy of it is returned. If the argument is t a new, ``randomly'' initialized state object is produced and returned.