|
Message-ID: <CANEVyjvCd2VgrQckMs9q+uAeiT=J41y1RTDrEEBsbg2LNTp5TQ@mail.gmail.com>
Date: Sun, 21 Sep 2014 15:20:25 +0300
From: "Nadav Har'El" <nyh@...udius-systems.com>
To: musl@...ts.openwall.com
Subject: Re: drand48() gives wrong sequence?
>Am Sonntag, den 21.09.2014, 14:45 +0300 schrieb Nadav Har'El:
>> Any ideas why I'm getting the wrong sequence?
>
>I don't think you are getting the wrong sequence, you are just
>printing it wrong. "%ld" is for long double and not for double.
>
>Jens
(I tried to subscribe to the mailing list but it didn't work, so please CC
me with further responses).
"%ld" is not a double at all, it's an int.
My message's title was indeed somewhat confusing, because I mentioned
drand48() in the title but used lrand48() in my example code. I saw the
same problem of a different sequence also with drand48() (printed with %g
of course) - but at the end decided to include code which printed lrand48().
Anyway, "%ld" is the right thing to use here because lrand48() returns a
"long int".
Replacing it with "%d" makes no difference and the sequences are still
different (I tried). This is because while lrand48()'s type is officially
"long", its return value is just 32-bit, so one can treat it just fine as
either long (64-bit on my 64-bit machine) or int (32-bit) and you get the
same result.
--
Nadav Har'El
nyh@...udius-systems.com
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.