Re: random distribution

Aubrey Jaffer (jaffer@ai.mit.edu)
Thu, 26 Feb 1998 22:32:39 -0500 (EST)

Date: Thu, 26 Feb 1998 14:57:08 +0100 (MET)
From: Klaus Schilling <Klaus.Schilling@home.ivm.de>
Reply-To: Klaus.Schilling@home.ivm.de
Sender: owner-guile@cygnus.com
Precedence: bulk
X-UIDL: b59246c9745362e89be07c3a9ef0d40d

Are there some implementations of random distributions, such as
poisson,normal, erlang, weibull, binomial, chi-square,
^^^^^^

Normal distributions are supported by SLIB; info appended. If you
have formulas for the other distributions, please send and I will
incorporate them.

hypergeometric,... available for guile+slib? I couldn't find
anything the like in the scheme repository. If not, would it be
better to write them directly in scheme or to use C/C++- written
ones (e.g. those in libg++) and wrap them into libguile?

-=-=-=-=-

File: slib.info, Node: Random Numbers, Next: Cyclic Checksum, Prev: Prime Factorization, Up: Mathematical Packages

Random Numbers
==============

`(require 'random)'

....

If inexact numbers are support by the Scheme implementation,
`randinex.scm' will be loaded as well. `randinex.scm' contains
procedures for generating inexact distributions.

- Procedure: random:normal
- Procedure: random:normal STATE
Returns an inexact real in a normal distribution with mean 0 and
standard deviation 1. For a normal distribution with mean M and
standard deviation D use `(+ M (* D (random:normal)))'.

- Procedure: random:normal-vector! VECT
- Procedure: random:normal-vector! VECT STATE
Fills VECT with inexact real random numbers which are independent
and standard normally distributed (i.e., with mean 0 and variance
1).

- Procedure: random:exp
- Procedure: 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)).

-- 
			     -=-=-=-=-=-
I am a guest and *not* a member of the MIT Artificial Intelligence Lab.
      My actions and comments do not reflect in any way on MIT.