Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2006-10-23 11:35:39


Nelis Franken wrote:
> Hi,
>
> I've been looking into statistical distributions, and while comparing
> Wikipedia's mathematical formulation and Boost's implementation of the
> Exponential Distribution, I have found two points of interest. Before
> continuing, I just need to add that I'm not a statistician or a
> mathematician, so any errors either mathematical or in interpretation
> below are my own.
>
> The Wikipedia reference:
> http://en.wikipedia.org/wiki/Exponential_distribution
>
> The Boost implementation (line 54 of exponential_distribution.hpp)
> -result_type(1) / _lambda * log(result_type(1)-eng());
>
> Where the eng() call generates a uniform random number.
>
> The first, less critical point: If eng() is uniform, then so is (1 -
> eng()), which allows for the simplification of the statement passed
> to log() from: log(result_type(1)-eng())
> to
> log(eng())
>
> The second, more critical point: The implementation does not seem to
> be the correct inverse of the original function. Boost's
> implementation (with above modification) is:
> -result_type(1) / _lambda * log(eng());
>
> But should actually be:
> -log(eng()) / _lamda;
>
> Could someone perhaps clarify the above? Again, apologies if my
> interpretations were wrong.

No you are correct on both counts I believe, I'm cc'ing the random lib's
author: Jens, any comments?

John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net