[ 
https://issues.apache.org/jira/browse/RNG-94?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16897204#comment-16897204
 ] 

Abhishek Singh Dhadwal commented on RNG-94:
-------------------------------------------

Hi, I would like to work on this feature.

My work shall be stored in : 
https://github.com/AbhishekSinghDhadwal/commons-rng/tree/feature-RNG-94

> Add RotateRotateMultiplyXorMultiplyXor generator
> ------------------------------------------------
>
>                 Key: RNG-94
>                 URL: https://issues.apache.org/jira/browse/RNG-94
>             Project: Commons RNG
>          Issue Type: New Feature
>          Components: core
>    Affects Versions: 1.3
>            Reporter: Alex D Herbert
>            Assignee: Alex D Herbert
>            Priority: Minor
>
> The generators described on the MostlyMangling website [Better, stronger 
> mixer and a test 
> procedure|http://mostlymangling.blogspot.com/2019/01/better-stronger-mixer-and-test-procedure.html]
>  show better output than the Stafford variant 13 mixing function used in 
> SplitMix or the murmur hash 3 mixing function used in ThreadLocalRandom for a 
> 64-bit based mixer function.
> {code}
> static inline uint64_t ror64(uint64_t v, int r) {
>     return (v >> r) | (v << (64 - r));
> }
> // Old mixer, my rrmxmx
> uint64_t rrmxmx(uint64_t v) {
>   v ^= ror64(v, 49) ^ ror64(v, 24);
>   v *= 0x9FB21C651E98DF25L;
>   v ^= v >> 28;
>   v *= 0x9FB21C651E98DF25L;
>   return v ^ v >> 28;
> }
> // New mixer, "rrxmrrxmsx_0", this is much more well behaved although
> // slightly slower doing 2 rotations instead of the shift in the middle 
> // of rrmxmx.
> // With a unit counter starting at 0, it has passed 128 TB of
> // PractRand 0.94 -tf 2 without anomalies found past 2 TB.
> uint64_t rrxmrrxmsx_0(uint64_t v) {
>   v ^= ror64(v, 25) ^ ror64(v, 50);
>   v *= 0xA24BAED4963EE407UL;
>   v ^= ror64(v, 24) ^ ror64(v, 49);
>   v *= 9FB21C651E98DF25UL;
>   return v ^ v >> 28;
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to