mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
* stdlib/stdlib.h (drand48_data): Make available only for __USE_MISC. Rename elements to protect namespace. Change type and position of a and init element. * stdlib/drand48-iter.c: Don't handle unsigned short > 16 bit differently. Adjust for drand48_data change. Don't compute a here, it comes from drand48_data. * stdlib/lcong48_r.c: Don't handle unsigned short > 16 bit differently. Adjust for drand48_data change. Compute a here. * stdlib/srand48_r.c: Likewise. * stdlib/drand48.c: Adjust for drand48_data change. * stdlib/lrand48.c: Likewise. * stdlib/mrand48.c: Likewise. * stdlib/seek48.c: Likewise. * stdlib/drand48_r.c: Likewise. * stdlib/lrand48_r.c: Likewise. * stdlib/mrand48_r.c: Likewise. * stdlib/seed48_r.c: Likewise. Don't handle unsigned short > 16 bit differently. * stdlib/erand48_r.c: Don't handle unsigned short > 16 bit differently. * stdlib/jrand48_r.c: Likewise.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1995, 1997, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
||||
|
||||
@ -37,19 +37,10 @@ __erand48_r (xsubi, buffer, result)
|
||||
/* Construct a positive double with the 48 random bits distributed over
|
||||
its fractional part so the resulting FP number is [0.0,1.0). */
|
||||
|
||||
#if USHRT_MAX == 65535
|
||||
temp.ieee.negative = 0;
|
||||
temp.ieee.exponent = IEEE754_DOUBLE_BIAS;
|
||||
temp.ieee.mantissa0 = (xsubi[2] << 4) | (xsubi[1] >> 12);
|
||||
temp.ieee.mantissa1 = ((xsubi[1] & 0xfff) << 20) | (xsubi[0] << 4);
|
||||
#elif USHRT_MAX == 2147483647
|
||||
temp.ieee.negative = 0;
|
||||
temp.ieee.exponent = IEEE754_DOUBLE_BIAS;
|
||||
temp.ieee.mantissa0 = (xsubi[1] << 4) | (xsubi[0] >> 28);
|
||||
temp.ieee.mantissa1 = ((xsubi[0] & 0xfffffff) << 4);
|
||||
#else
|
||||
# error Unsupported size of short int
|
||||
#endif
|
||||
|
||||
/* Please note the lower 4 bits of mantissa1 are always 0. */
|
||||
*result = temp.d - 1.0;
|
||||
|
Reference in New Issue
Block a user