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

Gilles Sadowski commented on RNG-127:
-------------------------------------

bq. is creating by name the only mechanism to obtain a specific generator.

No but that's the one likely to be used by most users (casual use would be 
through the 
[{{getDefault()}}|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html#getDefault()]
 method).  The other way is to get 
[all|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html#all()]
 the available implementations and use the stream API to filter on various 
[properties|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html]
 (e.g. [state 
size|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html#stateBits()]).

I'd think that the first step is to add the property methods to 
{{RandomSource}}.


> 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
>            Priority: Minor
>
> 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)

Reply via email to