[
https://issues.apache.org/jira/browse/MATH-1597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gilles Sadowski updated MATH-1597:
----------------------------------
Fix Version/s: (was: 4.0)
4.X
> Refactor low-discrepancy sequence functionality
> -----------------------------------------------
>
> Key: MATH-1597
> URL: https://issues.apache.org/jira/browse/MATH-1597
> Project: Commons Math
> Issue Type: Improvement
> Reporter: Gilles Sadowski
> Priority: Minor
> Fix For: 4.X
>
> Time Spent: 2h 40m
> Remaining Estimate: 0h
>
> Two low-discrepancy sequences are implemented in Commons Math (in package
> {{o.a.c.math4.legacy.random}}:
> * {{SobolSequenceGenerator}}
> * {{HaltonSequenceGenerator}}
> They both provide several methods:
> * {{nextVector()}}
> * {{skipTo(int)}}
> * {{getNextIndex()}}
> of which only the first is part of their common API through the
> {{RandomVectorGenerator}}.
> I propose to create an interface that would better represent the specific
> concept (and avoid the confusion with pseudo-random generators):
> {code}
> public interface LowDiscrepancySequence extends Supplier<double[]> { /* ...
> */}
> {code}
> Thus, instead of class {{SobolSequenceGenerator}} we'd have:
> {code}
> public class SobolSequence implements LowDiscrepancySequence {
> // ...
> }
> {code}
> This functionality could be moved to a new {{o.a.c.m.legacy.quasirandom}}
> package (?).
> Method {{skipTo}} could be replaced with an API similar to Commons RNG
> {{JumpableUniformRandomProvider}} (?).
> The new design (TBD on the "dev" ML) should ideally take [additional
> implementations|https://en.wikipedia.org/wiki/Low-discrepancy_sequence] into
> account.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)