Random Number Generation
------------------------
- primitive: copy-random-state [state]
Return a copy of the random state STATE.
- primitive: random n [state]
Return a number in [0,N). Accepts a positive integer or real n
and returns a number of the same type between zero (inclusive) and
N (exclusive). The values returned have a uniform distribution.
The optional argument STATE must be of the type produced by
`seed->random-state'. It defaults to the value of the variable
*random-state*. This object is used to maintain the state of the
pseudo-random-number generator and is altered as a side effect of
the random operation.
- primitive: random:exp [state]
Returns an inexact real in an exponential distribution with mean 1.
For an exponential distribution with mean u use (* u (random:exp)).
- primitive: random:hollow-sphere! v [state]
Fills vect with inexact real random numbers the sum of whose
squares is equal to 1.0. Thinking of vect as coordinates in space
of dimension n = (vector-length vect), the coordinates are
uniformly distributed over the surface of the unit n-shere.
- primitive: random:normal [state]
Returns an inexact real in a normal distribution. The
distribution used has mean 0 and standard deviation 1. For a
normal distribution with mean m and standard deviation d use `(+ m
(* d (random:normal)))'.
- primitive: random:normal-vector! v [state]
Fills vect with inexact real random numbers that are independent
and standard normally distributed (i.e., with mean 0 and variance
1).
- primitive: random:solid-sphere! v [state]
Fills vect with inexact real random numbers the sum of whose
squares is less than 1.0. Thinking of vect as coordinates in
space of dimension n = (vector-length vect), the coordinates are
uniformly distributed within the unit n-shere. The sum of the
squares of the numbers is returned.
- primitive: random:uniform [state]
Returns a uniformly distributed inexact real random number in
[0,1).
- primitive: seed->random-state seed
Return a new random state using SEED.