On 1/26/16 1:47 AM, Luc Maisonobe wrote:
> Le 26/01/2016 01:13, Gilles a écrit :
>> Hi.
> Hi Gilles,
>
>> In CM, a base class "BitsStreamGenerator" contains methods for
>> generating various primitive types from a bit source (to be
>> implemented by subclasses by overriding the "next(int bits)"
>> method).
>> For example, to get a random "long" value, the following code
>> is called:
>> ---CUT---
>>     public long nextLong() {
>>         final long high  = ((long) next(32)) << 32;
>>         final long  low  = (next(32)) & 0xffffffffL;
>>         return high | low;
>>     }
>> ---CUT---
>>
>> If the bit source were provided by the JDK's "Random" class,
>> is it assumed that the "long" value generated by the above
>> code will always be equal to the "long" value generated by
>> the call to JDK's "Random" class?
> No. There is nothing said anywhere in the javadoc that would imply
> one implementation of nextLong is the same as another implementation.
> The only thing that user can exapect is that when they choose one
> implementation, it is consistent, i.e. it is "random enough" and
> "not biased". Two different implementations can fulfill these
> requirements without producing the same sequence.
>
>> In other words, how "standard" are the default implementations
>> of the methods defined in "BitsStreamGenerator"?
> I don't think there are any standard to abide by.
>
>> And what are the compatibility requirements with respect to
>> reproducibility of the sequences (between releases of the
>> library)?
> It's a grey zone, IMHO. It is nice to preserve reproducibility
> as changing it changes the reference test cases with fixed seeds.

Did the original test cases for the generators that came in with
Mantissa come from external references?  If so, it would be good to
keep them for at least the bit streams themselves so we can be sure
that what we have implemented is the standard implementation of the
algorithm.  If we leave the standard algorithms themselves behind,
it's then on us to produce tests to verify lots of properties beyond
just lack of bias and uniformity.

Phil
> On the other hand, too much compatibility really is a pain, we
> feel it constantly, so I would say that as soon as we need to
> change the sequence, we can just do it, and check all the tests
> we know of (i.e. those of our own library) still pass and we
> go forward.
>
> best regards,
> Luc
>
>>
>> Regards,
>> Gilles
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


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

Reply via email to