Andrey A. Chernov
476d9314d6
1) POSIX requires rand(3) return values to be in the [0, RAND_MAX] range,
...
but ACM formula we use have internal state (and return value) in the
[1, 0x7ffffffe] range, so our RAND_MAX (0x7fffffff) is never reached
because it is off by one, zero is not reached too.
Correct both RAND_MAX and rand(3) return value, shifting last one
to the 0 by 1 subtracted, resulting POSIXed [0, 0x7ffffffd(=new RAND_MAX)]
range.
2) Add a checks for not overflowing on too big seeds. It may happens on
the machines, where sizeof(unsigned int) > 32 bits.
Reviewed by: bde [1]
MFC after: 2 weeks
2013-07-03 21:21:54 +00:00
..
2013-05-25 18:59:11 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2012-07-26 12:04:11 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2012-10-03 04:46:58 +00:00
2011-12-26 03:14:37 +00:00
2012-06-11 22:25:20 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2013-05-28 20:57:40 +00:00
2010-04-14 19:08:06 +00:00
2013-05-28 20:57:40 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-04-21 10:30:19 +00:00
2012-06-25 21:51:40 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2012-09-12 17:54:09 +00:00
2012-09-12 17:54:09 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2012-07-26 12:04:11 +00:00
2011-12-15 11:16:41 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-07-03 21:21:54 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2012-04-17 07:22:14 +00:00
2010-03-03 15:43:26 +00:00
2013-06-13 00:19:30 +00:00
2013-04-17 11:40:10 +00:00
2012-06-26 05:34:31 +00:00
2011-11-20 14:45:42 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2010-10-22 08:51:49 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00
2012-04-17 07:22:14 +00:00
2013-06-13 00:19:30 +00:00
2013-06-13 00:19:30 +00:00