You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alex Herbert (Jira)" <ji...@apache.org> on 2019/11/25 17:09:00 UTC
[jira] [Commented] (RNG-124) Create fixed increment PCG generators
[ https://issues.apache.org/jira/browse/RNG-124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16981711#comment-16981711 ]
Alex Herbert commented on RNG-124:
----------------------------------
I have completed the stress test runs using Dieharder, BigCrush and PractRand for the fixed increment PCG generators.
For reference I included the results of the same generators with a variable increment.
{noformat}
RNG Dieharder ∩ TestU01 (BigCrush) ∩ PractRand ∩
PCG_XSH_RR_32 0,0,0,0,0 0,0,0,0,0 -,-,-
PCG_XSH_RS_32 0,0,0,0,0 0,1,2,1,0 41,-,-
PCG_RXS_M_XS_64 0,0,0,0,0 0,1,0,0,0 -,-,-
PCG_XSH_RR_32_OS 0,0,0,0,0 0,0,1,0,0 -,-,-
PCG_XSH_RS_32_OS 0,0,0,0,0 0,0,1,0,0 -,-,-
PCG_RXS_M_XS_64_OS 0,0,0,0,0 0,0,0,1,2 -,-,-
{noformat}
This is as expected. These generators do not systematically fail any of these tests when using a variable increment. They are fine with the default increment.
> Create fixed increment PCG generators
> -------------------------------------
>
> Key: RNG-124
> URL: https://issues.apache.org/jira/browse/RNG-124
> Project: Commons RNG
> Issue Type: Improvement
> Components: core, simple
> Affects Versions: 1.3
> Reporter: Alex Herbert
> Assignee: Alex Herbert
> Priority: Trivial
> Time Spent: 20m
> Remaining Estimate: 0h
>
> The increment of the PCG generator serves to select the underlying linear congruential generator (LCG) from 2 classes of related generators. Thus initialisation of generators using different increments can result in PCG output with massive correlations. The result is that seeding with 128-bits does not reduce the chance of correlated output over seeding with just 64-bits and using a fixed increment. See RNG-123.
> Create a fixed increment version of the three PCG generators which currently accept the increment in their seed:
> {noformat}
> PCG_XSH_RR_32 => PCG_XSH_RR_32_OS
> PCG_XSH_RS_32 => PCG_XSH_RS_32_OS
> PCG_RXS_M_XS_64 => PCG_RXS_M_XS_64_OS
> {noformat}
> Here the {{_OS}} suffix represents One Sequence. The equivalent PCG generators in the reference c++ source code have a _oneseq suffix.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)