|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] RNG |
Date: | Tue, 17 May 2016 19:06:02 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
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 |
[Prev in Thread] | Current Thread | [Next in Thread] |