1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
* 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:
Ulrich Drepper
2001-01-21 16:54:08 +00:00
parent 27cb6b28b9
commit d17c01f9fe
16 changed files with 635 additions and 632 deletions

View File

@ -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;