[ 
https://issues.apache.org/jira/browse/MATH-1597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated MATH-1597:
---------------------------------
    Labels: pull-request-available  (was: )

> 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
>              Labels: pull-request-available
>             Fix For: 4.X
>
>          Time Spent: 3h
>  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.20.10#820010)

Reply via email to