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 2021/04/02 08:33:00 UTC

[jira] [Created] (RNG-127) Assess future compatibility with JEP 356: Enhanced Pseudo-Random Number Generators

Alex Herbert created RNG-127:
--------------------------------

             Summary: Assess future compatibility with JEP 356: Enhanced Pseudo-Random Number Generators 
                 Key: RNG-127
                 URL: https://issues.apache.org/jira/browse/RNG-127
             Project: Commons RNG
          Issue Type: Task
          Components: client-api
    Affects Versions: 1.3
            Reporter: Alex Herbert


JEP 356 specifies an enhancement to the random number generators. This is targeted to JDK 17.

[JEP 356: Enhanced Pseudo-Random Number Generators|https://openjdk.java.net/jeps/356]

The enhancement will add interfaces to the JDK for random number generation:
 * SplittableRandomGenerator extends RandomGenerator and also provides
 methods named split and splits. Splittability allows the user to spawn a new RandomGenerator from an existing RandomGenerator that will generally produce statistically independent results.

 * JumpableRandomGenerator extends RandomGenerator and also provides
 methods named jump and jumps. Jumpability allows a user to jump ahead a moderate number of draws.

 * LeapableRandomGenerator extends RandomGenerator and also provides
 methods named leap and leaps. Leapability allows a user to jump ahead a large number of draws.

 * ArbitrarilyJumpableRandomGenerator extends LeapableRandomGenerator and also provides additional variations of jump and jumps that allow an arbitrary jump distance to be specified.

The specification describes the development of abstract classes that would allow different algorithms to be easily implemented by developers and used with a Java application through a common interface. This would replicate the functionality of the Common RNG API and core modules within the JDK.

The JDK interfaces should be compared with the current client API in Commons RNG with the aim to assess:
 # Compatibility
 # Potential to back-port functionality

JEP 356 also mentions the implementation of the LXM family of RNGs and a change to the algorithm used by SplittableRandom to address two weaknesses identified in 2016. These could be included in the current codebase pending license compatibility checks.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)