commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles Sadowski <gillese...@gmail.com>
Subject Re: [Rng] New XoShiRo generators
Date Thu, 21 Mar 2019 02:08:37 GMT
undefined
Le mer. 20 mars 2019 à 21:39, Alex Herbert <alex.d.herbert@gmail.com> a écrit :
>
>
>
> > On 20 Mar 2019, at 18:22, Gilles Sadowski <gilleseran@gmail.com> wrote:
> >
> >>> [...]
> >>> Perhaps the "RandomStressTester" should be made more flexible
> >>> and, instead of a hard-coded "GeneratorsList", accept a list of "enum"
> >>> identifiers. e.g. a list (ASCII file) like:
> >>> MT 3
> >>> MT_64 3
> >>> SPLIT_MIX_64 3
> >>> [etc.]
> >>> where the second columns indicates how many runs to perform for
> >>> this type of RNG.
> >>> [A (mandatory) flag specifying this file would replace the first 2
> >>> command-line arguments.]

Correcting: The second argument (number of threads) is still needed.

> >>
> >> That would be nice.
> >>
> >> But:
> >>
> >> 1. The GeneratorsList class allows a user to use another list that is on
> >> the Java classpath and test their own generators provided by that list.
> >> That is if I understand how Java can build things using reflection. The
> >> likelihood of ever needing to do this is ... ? (very small)
> >
> > And they could still do that if they add to the "RandomSource" list…
>
> Yes. So no need to worry about what others will do and just support named enums in RandomSource.
>
> >
> >>
> >> 2. The GeneratorsList class can be auto generated from the enum
> >
> > There could be a provided input file, updated whenever "RandomSource"
> > is.
> > One advantage is they we could slightly expand the format to allow e.g.:
> >
> > TWO_CMRES 3
> > TWO_CMRES() 3
> > TWO_CMRES(1,2) 3
>
> I had wondered about supporting additional arguments to the RandomSource.create method.
Currently we only need to support Integer but support for Integer, Long, Float, Double can
come from using the canonical form, e.g. 0, 0L, 0f, 0.0. Perhaps just jump hurdles when needed.
An easier approach would be to hard code the handling of TWO_CMRES_SELECT to know the values
inside the parentheses are two ints.
>
> >
> >> I suppose it could be updated to require an input text list (as per your
> >> example) but if called with no arguments it can print out a default text
> >> list using the order of the RandomSource enum.
> >>
> >> Thus it should not need to be modified if more generators are added.
> >
> > I'm not sure I understand here.
>
> If the program only needs to support RandomSource then it can easily enumerate RandomSource
and print out an example input file. Then there is no need to provide an input file for the
program since it can write a default one.

If the user forgets to supply one, the program outputs one, and stops;
then the user reissues the command?

>
> It would have to know to handle TWO_CMRES_SELECT with arguments. But since it is only
one case this is easy to support.
>
>
> Q. Since this is in examples can it depend on another project, e.g. Commons CLI?

Or this one: https://picocli.info/

> It would make the parsing of arguments easier for this and the data dumper program.
>
> I’m not sure how recent Commons CLI is. The homepage states "a freshly designed and
not backwards compatible CLI 2 was created in 2004, but never finished or released."
>
> But it looks like it has all the functionality to parse the type of arguments we are
discussing for these programs.
>
> Alex

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message