You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gilles (JIRA)" <ji...@apache.org> on 2019/07/16 17:41:00 UTC
[jira] [Commented] (RNG-70) xoshiro generators
[ https://issues.apache.org/jira/browse/RNG-70?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16886338#comment-16886338 ]
Gilles commented on RNG-70:
---------------------------
FTR: https://www.sciencedirect.com/science/article/pii/S0377042718306265
> xoshiro generators
> ------------------
>
> Key: RNG-70
> URL: https://issues.apache.org/jira/browse/RNG-70
> Project: Commons RNG
> Issue Type: New Feature
> Components: core, simple
> Reporter: Alex D Herbert
> Assignee: Alex D Herbert
> Priority: Major
> Fix For: 1.3
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> The authors of the algorithm implemented in {{org.apache.commons.rng.core.source64.XorShift1024Star}} have produced new generators as described here:
> [xorshiro / xoroshiro generators|http://xoshiro.di.unimi.it]
> I propose to implement the *all purpose* algorithms using the following classnames:
> {code:java}
> source32.XoShiRo128StarStar
> source64.XoRoShiRo128StarStar
> source64.XoShiRo256StarStar
> source64.XoShiRo512StarStar
> source64.XorShift1024Phi
> {code}
> The algorithms are simple to adapt from the c source code and I have created working versions with units tests (analogous to the {{XorShift1024Star}} test).
> Each generator must have a corresponding name in the {{RandomSource}} enum. I propose:
> {code:java}
> XO_SHI_RO_128_SS,
> XO_RO_SHI_RO_128_SS,
> XO_SHI_RO_256_SS,
> XO_SHI_RO_512_SS,
> XOR_SHIFT_1024_PHI,
> {code}
> Note: XorShift1024Phi is an updated implementation of XorShift1024Star using a different multiplier. To share code this could be implemented by moving the implementation to an abstract base class for both XorShift1024Phi and XorShift1024Star which accepts the multiplier in the constructor.
> The authors also provide code for *faster generators* for use in creating floating-point random numbers where the lower order bits are discarded. These could be named:
> {code:java}
> source32.XoShiRo128Plus
> source64.XoRoShiRo128Plus
> source64.XoShiRo256Plus
> source64.XoShiRo512Plus
> XO_SHI_RO_128_PLUS,
> XO_RO_SHI_RO_128_PLUS,
> XO_SHI_RO_256_PLUS,
> XO_SHI_RO_512_PLUS,
> {code}
> For discussion:
> * The names of the generators.
> * Should the small state 64-bit generator XoRoShiRo128StarStar be implemented? It has a potentially confusing name clash with the 32-bit generator XoShiRo128StarStar. Speed is expected to be the same as XoShiRo256Star but using only half the memory footprint.
> * Should the faster floating-point generators be implemented?
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)