Hi Xiao-Yong,

the reason is that ⎕RL is defined as a single integer in the ISO standard.
That prevents generators with a too large state.

For somebody seriously into simulations a general purpose generator
will never suffice, but it is fairly easy to program one in APL.
c++11 is currently not an option because I would like to not reduce the
portability of GNU APL onto different platforms.

I'll have a look at the % usage.

/// Jürgen


 
On 05/17/2016 06:16 PM, Xiao-Yong Jin wrote:
Hi,

The LCG used for roll may be fine for some casual uses, but I would really like to see a higher quality RNG adopted here.  Since speed may not be the main concern here, employing the use of c++11 <random> and preferably using the std::mt19937_64 seems to be much better for any monte carlo type calculations.  It could be a trivial change to Quad_RL class, although saving the RNG state in a workspace may require a bit more code.  What do you say?

By the way, since in Workspace::get_RL 'return rand % mod;', you can remove the same ‘%’ in all the bif_roll definitions.

Best,
Xiao-Yong




Reply via email to