Boost logo

Boost :

From: Jens Maurer (Jens.Maurer_at_[hidden])
Date: 2002-10-03 17:10:21


Jens Maurer wrote:
>
> I'm progressing towards a paper for the ISO C++ committee
> proposing to include a random number facility based on
> Boost.Random in the C++ standard library technical report.

With the further work on this (not yet checked in), I've
re-read the original Lüscher paper on ranlux. He appears
to recommend p=223 and p=389, which (I believe) are commonly
known as luxury levels 3 and 4. I've been unable to find
an online copy of the James implementation paper, so probably
that contains more up-to-date parameters.

For the time being, the illogical ranlux_4 and ranlux_7 stuff
has been removed, instead there is ranlux3 and ranlux4
(for the two luxury levels) as well as ranlux3_01 and ranlux4_01
(based on float, 24 bits).

Expect that the p-values (and thus the generated numbers) could
change before release of boost 1.30 once more. Please provide
me with the "industry standard" values, if there are such.

Also, I've now got what I believe is a pretty airtight
specification of subtract_with_carry.hpp (not yet checked in),
the implementation is checked in. In order to provide reliable
operator== and operator<<, the implementation got 30% slower,
because the fill() batch update logic went away. I believe
that, with some effort or investment in twice the amount
of state memory, you could restore the old performance.
I'm not doing this for Boost.Random at the moment.

The numbers produced by subtract_with_carry (alone) should not
have changed due to this implementation change.

In general, I would not recommend adapting your own code to
the changes in Boost.Random right away, but instead wait
for about four weeks (to after the ISO C++ meeting). There
will certainly be more changes, I hope no major structural
ones.

Jens Maurer


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk