Bob Runyan wrote:
>The RNG in LF90 was written by Dr. Iosif Dyadkin, in Russia (a very
>interesting person, but that's a different story). It is a
>multiplicative congruential generator. It's period is very large,
>but I'm not sure exactly what it is--as I remember, it was on the
>order of 2**38. Ken Hamilton did a review of a bunch of RNGs that
>came with commercial compilers (including ours and Microsoft's) in
>Computational Physics a few years ago. Ours and the one in the
>now defunct SVS compilers came out best. The MS one was really bad.
DIGITAL Visual Fortran uses the L'ecuyer algorithm as described in:
Pierre L'ecuyer.
Efficient and Portable Combined Random Number Generators
Communications of the ACM vol 31 num 6 June 1988.
The generator uses two separate congruential generators together to produce a
period of approximately 10**18 (2**60, though because a double-precision value
is calculated, there are only about 2**53 distinct values), and produces real
pseudorandom results with a uniform distribution in (0,1). It accepts two
integer seeds, the first of which is reduced to the range [1, 2147483562]. The
second seed is reduced to the range [1, 2147483398]. This means that the
generator effectively uses two 31-bit seeds.
I've corresponded with Ken Hamilton on this - he sent me a copy of the report
Bob refers to - and Ken says that the L'ecuyer algorithm is significantly better
than those he reviewed.
Steve Lionel mailto:[log in to unmask]
Fortran Development http://www.digital.com/info/slionel.html
Digital Equipment Corporation
110 Spit Brook Road, ZKO2-3/N30
Nashua, NH 03062-2698 "Free advice is worth every cent"
For information on DIGITAL Fortran, see http://www.digital.com/fortran
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|