Re: [HACKERS] random() function produces wrong range

Thomas Swan <tswan@olemiss.edu>

From: Thomas Swan <tswan@olemiss.edu>
To: Tom Lane <tgl@sss.pgh.pa.us>, Malcolm Beattie <mbeattie@sable.ox.ac.uk>
Cc: Thomas Lockhart <lockhart@alumni.caltech.edu>, pgsql-hackers@postgresql.org, pgsql-general@postgresql.org
Date: 2000-08-03T03:23:07Z
Lists: pgsql-hackers
> >> none of the man pages I've looked at so far mention it).  But all the
> >> machines say that the output of random() is 31 bits, so INT_MAX should
> >> work.
>
> > SuSv2 says explicitly 2^31-1 so you should use that, otherwise you'll
> > be non-portable to platforms with 64-bit ints, for example.
>
>Maybe.  You don't think that a 64-bit-int platform would choose to
>supply a random() function with a range of 2^63-1?  The HPUX and SunOS
>man pages clearly specify that random()'s result is "long", so I think
>a case could also be made for LONG_MAX.
>
>I suspect we have a good chance at getting burned no matter what we use
>:-(.  But RAND_MAX is definitely the wrong thing.

Is it possible to test (during configure phase) and then go from there... 
or does it need to be the same for all platforms?

-
- Thomas Swan
- Graduate Student  - Computer Science
- The University of Mississippi
-
- "People can be categorized into two fundamental
- groups, those that divide people into two groups
- and those that don't."