[fpc-devel] Different results of random(int32) and random(int64) for negative limit value
Thaddy de Koning
thaddy at thaddy.com
Wed May 24 09:39:35 CEST 2017
Of course 64 and 32 bit are the sizes, not the platform! That may not be
clear.
On 5/24/2017 9:35 AM, Thaddy de Koning wrote:
>
> Jonas, sorry for the late response:
>
> The implementation is _*not *_undefined for negative values,_unless
> you say that you define it as undefined_.
>
> Because you seem to have implemented it or most of it.
>
> It renders a mathematical comparable distribution in the negative to
> the positive values.
>
> In both Turbo Pascal as in Delphi and because they use a different
> algorithm and made an implementation error as well, the negative
> values are indeed not defined. But that's because of the algorithm and
> because of the implementation by Borland (yes, it stems from Borland
> times).
>
> The Mersenne Twister we use is also valid for negative values and if
> you want I can send you the mathematical proof.
>
> I already made the LCG in Delphi compatible mode available on the wiki
> and that implementation differs in so far as that it corrects the
> "undefined for negative values" for that algorithm too. It is 100%
> compatible for the Delphi documented range, btw.
>
> I am busy evaluating important Random implementions for different
> languages, so an FPC library is available for data that is generated
> in a different language and relies on a particular PRNG.
>
> Also note that the output of the current random is strictly valid for
> 32 bit only.
>
> In my code I already added a 64 bit version.
>
> Regards,
>
> Thaddy
>
>
>
>
> On 5/20/2017 2:57 PM, Jonas Maebe wrote:
>> On 20/05/17 14:36, Martin Schreiber wrote:
>>> Is this intended? If not, which one is correct?
>>
>> random(x) is undefined for negative parameters. It should have had an
>> unsigned parameter, like in Turbo Pascal (where it is word). Delphi
>> defines it as always returning a positive value, but I don't know
>> what happens if you pass a negative parameter there.
>>
>>
>> Jonas
>> _______________________________________________
>> fpc-devel maillist - fpc-devel at lists.freepascal.org
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20170524/e7ed8a9d/attachment.html>
More information about the fpc-devel
mailing list