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 D Herbert (JIRA)" <ji...@apache.org> on 2018/09/24 13:49:00 UTC
[jira] [Created] (RNG-57) CachedUniformRandomProvider for
nextBoolean() and nextInt()
Alex D Herbert created RNG-57:
---------------------------------
Summary: CachedUniformRandomProvider for nextBoolean() and nextInt()
Key: RNG-57
URL: https://issues.apache.org/jira/browse/RNG-57
Project: Commons RNG
Issue Type: Improvement
Components: sampling
Affects Versions: 1.2
Reporter: Alex D Herbert
Implement a wrapper around a {{UniformRandomProvider}} that can cache the underlying source of random bytes for use in the methods {{nextBoolean()}} and {{nextInt()}} (in the case of {{LongProvider}}). E.g.
{code:java}
LongProvider provider = RandomSource.create(RandomSource.SPLIT_MIX_64);
CachedLongProvider rng = new CachedLongProvider(provider);
// Uses cached nextLong() 64 times
rng.nextBoolean();
// Uses cached nextLong() twice
rng.nextInt();
IntProvider provider = RandomSource.create(RandomSource.KISS);
CachedIntProvider rng2 = new CachedIntProvider(provider);
// Uses cached nextInt() 32 times
rng2.nextBoolean();
// This could be wrapped by a factory method:
UniformRandomProvider rng = CachedUniformRandomProviderFactory.wrap(
// Any supported source: IntProvider or LongProvider
RandomSource.create(RandomSource...));
{code}
The implementation should be speed tested to determine the benefit for {{nextBoolean()}} and if {{nextInt()}} can be improved for {{LongProviders}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)