|
Packit |
67cb25 |
# -*- org -*-
|
|
Packit |
67cb25 |
#+CATEGORY: randist
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* ACM Computing Surveys (CSUR)
|
|
Packit |
67cb25 |
Volume 39 , Issue 4 (2007)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Gaussian random number generators
|
|
Packit |
67cb25 |
David B. Thomas, Wayne Luk, Philip H.W. Leong, John D. Villasenor
|
|
Packit |
67cb25 |
Article No. 11
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* add Erlang dist back in?
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* DONE, for mu.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Note that we need to get rid of mu when it is not the mean.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
From: Brian Gough <bjg@network-theory.co.uk>
|
|
Packit |
67cb25 |
To: briggsk@info.bt.co.uk
|
|
Packit |
67cb25 |
Cc: gsl-discuss@sourceware.cygnus.com
|
|
Packit |
67cb25 |
Subject: Re: Pareto Distribution
|
|
Packit |
67cb25 |
Date: Sun, 9 Jul 2000 20:05:03 +0100 (BST)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Yes, we should adopt the conventions from a standard reference book --
|
|
Packit |
67cb25 |
the existing functions are drawn from a variety of sources, mostly
|
|
Packit |
67cb25 |
Devroye's book on Random Variates (which is public domain, but not
|
|
Packit |
67cb25 |
available electronically unfortunately). Maybe the three volumes of
|
|
Packit |
67cb25 |
Johnson & Kotz on Univariate Distributions would do, for
|
|
Packit |
67cb25 |
example. Patches are welcome from anyone who wants sort this out.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Keith Briggs writes:
|
|
Packit |
67cb25 |
> Another thing to think about: some of the other distributions
|
|
Packit |
67cb25 |
> have a argument `mu' to the C function which is a parameter
|
|
Packit |
67cb25 |
> which is not the mean. This is non-standard and confusing.
|
|
Packit |
67cb25 |
> (Also, in the Pareto function, `a' is normally called beta,
|
|
Packit |
67cb25 |
> `b' is normally called alpha.)
|
|
Packit |
67cb25 |
>
|
|
Packit |
67cb25 |
> Keith
|
|
Packit |
67cb25 |
>
|
|
Packit |
67cb25 |
> +-------------------------------------------------------------------+
|
|
Packit |
67cb25 |
> | Dr. Keith M. Briggs, Complexity Research Group, BT Research Labs. |
|
|
Packit |
67cb25 |
> | Adastral Park admin2 pp5, Martlesham Heath, IP5 3RE, Suffolk, UK |
|
|
Packit |
67cb25 |
> | Tel. 01473 641 911 Fax. 01473 647 410. Home tel: 01473 625 972 |
|
|
Packit |
67cb25 |
> | www.bt.com | personal homepage: www.labs.bt.com/people/briggsk2/ |
|
|
Packit |
67cb25 |
> +-------------------------------------------------------------------+
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* The exponential power distribution method could be speeded up by
|
|
Packit |
67cb25 |
using a rational function approximation for the rejection scaling
|
|
Packit |
67cb25 |
parameter.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* Do something about the possibility of the user providing invalid
|
|
Packit |
67cb25 |
parameters (e.g. negative variance etc). Not sure what to do though,
|
|
Packit |
67cb25 |
since returning an error code is not possible. Maybe just return zero.
|
|
Packit |
67cb25 |
We should return NAN in this case, and for the CDFs.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* Add the triangular distribution.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* Look at Marsaglia & Tsang, "The Monte Python Method for generating
|
|
Packit |
67cb25 |
random variables", ACM TOMS Vol 24, No 3, p341
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
and the paper on the Ziggurat Method: Journal of Statistical Software,
|
|
Packit |
67cb25 |
Volume 05 Issue 08. George Marsaglia and Wai Wan Tsang. "The ziggurat
|
|
Packit |
67cb25 |
method for generating random variables"
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
* Should 0 be included in distributions such as the exponential
|
|
Packit |
67cb25 |
distribution? If we want a consistent behaviour, is it included in
|
|
Packit |
67cb25 |
others? Note that 1-gsl_rng_uniform() can have a slight loss of
|
|
Packit |
67cb25 |
precision when the random float is small.
|