[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r17252 - in /fsf/trunk/libc: ./ include/ manual/ math/ sysdeps/ieee754/flt-32/
- To: commits@xxxxxxxxxx
- Subject: [Commits] r17252 - in /fsf/trunk/libc: ./ include/ manual/ math/ sysdeps/ieee754/flt-32/
- From: eglibc@xxxxxxxxxx
- Date: Thu, 23 Feb 2012 00:02:26 -0000
Author: eglibc
Date: Thu Feb 23 00:02:24 2012
New Revision: 17252
Log:
Import glibc-mainline for 2012-02-23
Added:
fsf/trunk/libc/include/stdc-predef.h
Modified:
fsf/trunk/libc/CONFORMANCE
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/Makefile
fsf/trunk/libc/NEWS
fsf/trunk/libc/include/features.h
fsf/trunk/libc/manual/arith.texi
fsf/trunk/libc/manual/lang.texi
fsf/trunk/libc/manual/libc.texinfo
fsf/trunk/libc/math/libm-test.inc
fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c
fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c
Modified: fsf/trunk/libc/CONFORMANCE
==============================================================================
--- fsf/trunk/libc/CONFORMANCE (original)
+++ fsf/trunk/libc/CONFORMANCE Thu Feb 23 00:02:24 2012
@@ -134,13 +134,12 @@
====================
The macros __STDC_IEC_559__, __STDC_IEC_559_COMPLEX__ and
-__STDC_ISO_10646__ are properly supposed to be defined by the
-compiler, and to be constant throughout the translation unit (before
-and after any library headers are included). However, they mainly
-relate to library features, and the necessary magic has yet to be
-implemented for GCC to predefine them to the correct values for the
-library in use, so glibc defines them in <features.h>. Programs that
-test them before including any standard headers may misbehave.
+__STDC_ISO_10646__ are properly supposed to be constant throughout the
+translation unit (before and after any library headers are included).
+However, they mainly relate to library features, and GCC only knows to
+preinclude <stdc-predef.h> to get their definitions in version 4.8 and
+later. Programs that test them before including any standard headers
+may misbehave with older compilers.
GCC doesn't support the optional imaginary types. Nor does it
understand the keyword _Complex before GCC 3.0. This has the
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Feb 23 00:02:24 2012
@@ -1,3 +1,45 @@
+2012-02-22 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+ Roland McGrath <roland@xxxxxxxxxxxxx>
+
+ [BZ #5461]
+ * manual/arith.texi (strtoll): Refer to LLONG_MAX and LLONG_MIN,
+ not LONG_LONG_MAX and LONG_LONG_MIN.
+ * manual/lang.texi (LONG_LONG_MIN): Document first as ISO
+ LLONG_MIN. Refer to LONG_LONG_MIN only as older GCC-specific
+ name.
+ (LONG_LONG_MAX, LLONG_MAX, ULONG_LONG_MAX, ULLONG_MAX): Likewise.
+
+2012-02-22 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #2547]
+ [BZ #11365]
+ * sysdeps/ieee754/flt-32/s_nearbyintf.c (__nearbyintf): Do not
+ manipulate bits before adding and subtracting TWO23[sx].
+ * math/libm-test.inc (nearbyint_test): Add more tests.
+
+2012-02-22 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #2548]
+ * sysdeps/ieee754/flt-32/s_rintf.c (__rintf): Do not manipulate
+ bits before adding and subtracting TWO23[sx].
+ * math/libm-test.inc (rint_test): Add more tests.
+ (rint_test_tonearest): Likewise.
+ (rint_test_towardzero): Likewise.
+ (rint_test_downward): Likewise.
+ (rint_test_upward: Likewise.
+
+2012-02-22 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #10110]
+ * include/stdc-predef.h: New file. Extracted from features.h.
+ * include/features.h: Include stdc-predef.h.
+ * Makefile (headers): Add stdc-predef.h.
+ * CONFORMANCE (Compiler limitations): Update.
+
+2012-02-22 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * manual/libc.texinfo (VERSION, UPDATED): Revert.
+
2012-02-21 David S. Miller <davem@xxxxxxxxxxxxx>
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: More jn test ULP updates.
Modified: fsf/trunk/libc/Makefile
==============================================================================
--- fsf/trunk/libc/Makefile (original)
+++ fsf/trunk/libc/Makefile Thu Feb 23 00:02:24 2012
@@ -60,7 +60,7 @@
$(addprefix install-, no-libc.a bin lib data headers others)
headers := limits.h values.h features.h gnu-versions.h bits/libc-lock.h \
- bits/xopen_lim.h gnu/libc-version.h
+ bits/xopen_lim.h gnu/libc-version.h stdc-predef.h
echo-headers: subdir_echo-headers
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu Feb 23 00:02:24 2012
@@ -9,10 +9,11 @@
* The following bugs are resolved with this release:
- 174, 350, 411, 3335, 4026, 4596, 4822, 5077, 5805, 5993, 6884, 6907, 9739,
- 9902, 10140, 10210, 11174, 11322, 11494, 12047, 13058, 13525, 13526,
- 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552,
- 13553, 13555, 13559, 13583, 13618, 13695, 13704
+ 174, 350, 411, 2547, 2548, 3335, 4026, 4596, 4822, 5077, 5461, 5805, 5993,
+ 6884, 6907, 9739, 9902, 10110, 10140, 10210, 11174, 11322, 11365, 11494,
+ 12047, 13058, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532,
+ 13533, 13547, 13551, 13552, 13553, 13555, 13559, 13583, 13618, 13695,
+ 13704
* ISO C11 support:
Modified: fsf/trunk/libc/include/features.h
==============================================================================
--- fsf/trunk/libc/include/features.h (original)
+++ fsf/trunk/libc/include/features.h Thu Feb 23 00:02:24 2012
@@ -1,5 +1,4 @@
-/* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
- Free Software Foundation, Inc.
+/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -337,12 +336,9 @@
# define __USE_FORTIFY_LEVEL 0
#endif
-/* We do support the IEC 559 math functionality, real and complex. */
-#define __STDC_IEC_559__ 1
-#define __STDC_IEC_559_COMPLEX__ 1
-
-/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1. */
-#define __STDC_ISO_10646__ 200009L
+/* Get definitions of __STDC_* predefined macros, if the compiler has
+ not preincluded this header automatically. */
+#include <stdc-predef.h>
/* This macro indicates that the installed library is the GNU C Library.
For historic reasons the value now is 6 and this will stay from now
Added: fsf/trunk/libc/include/stdc-predef.h
==============================================================================
--- fsf/trunk/libc/include/stdc-predef.h (added)
+++ fsf/trunk/libc/include/stdc-predef.h Thu Feb 23 00:02:24 2012
@@ -1,0 +1,36 @@
+/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _STDC_PREDEF_H
+#define _STDC_PREDEF_H 1
+
+/* This header is separate from features.h so that the compiler can
+ include it implicitly at the start of every compilation. It must
+ not itself include <features.h> or any other header that includes
+ <features.h> because the implicit include comes before any feature
+ test macros that may be defined in a source file before it first
+ explicitly includes a system header. GCC knows the name of this
+ header in order to preinclude it. */
+
+/* We do support the IEC 559 math functionality, real and complex. */
+#define __STDC_IEC_559__ 1
+#define __STDC_IEC_559_COMPLEX__ 1
+
+/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1. */
+#define __STDC_ISO_10646__ 200009L
+
+#endif
Modified: fsf/trunk/libc/manual/arith.texi
==============================================================================
--- fsf/trunk/libc/manual/arith.texi (original)
+++ fsf/trunk/libc/manual/arith.texi Thu Feb 23 00:02:24 2012
@@ -2131,7 +2131,7 @@
If the string has valid syntax for an integer but the value is not
representable because of overflow, @code{strtoll} returns either
-@code{LONG_LONG_MAX} or @code{LONG_LONG_MIN} (@pxref{Range of Type}), as
+@code{LLONG_MAX} or @code{LLONG_MIN} (@pxref{Range of Type}), as
appropriate for the sign of the value. It also sets @code{errno} to
@code{ERANGE} to indicate there was overflow.
Modified: fsf/trunk/libc/manual/lang.texi
==============================================================================
--- fsf/trunk/libc/manual/lang.texi (original)
+++ fsf/trunk/libc/manual/lang.texi Thu Feb 23 00:02:24 2012
@@ -827,22 +827,36 @@
@w{@code{signed long int}} and @code{unsigned long int}, respectively.
@comment limits.h
-@comment GNU
-@item LONG_LONG_MIN
+@comment ISO
+@item LLONG_MIN
This is the minimum value that can be represented by a @w{@code{signed
long long int}}. On most machines that the GNU C system runs on,
@w{@code{long long}} integers are 64-bit quantities.
@comment limits.h
-@comment GNU
-@item LONG_LONG_MAX
-@comment limits.h
-@comment ISO
-@itemx ULONG_LONG_MAX
+@comment ISO
+@item LLONG_MAX
+@comment limits.h
+@comment ISO
+@itemx ULLONG_MAX
These are the maximum values that can be represented by a @code{signed
long long int} and @code{unsigned long long int}, respectively.
+
+@comment limits.h
+@comment GNU
+@item LONG_LONG_MIN
+@comment limits.h
+@comment GNU
+@itemx LONG_LONG_MAX
+@comment limits.h
+@comment GNU
+@itemx ULONG_LONG_MAX
+These are obsolete names for @code{LLONG_MIN}, @code{LLONG_MAX}, and
+@code{ULLONG_MAX}. They are only available if @code{_GNU_SOURCE} is
+defined (@pxref{Feature Test Macros}). In GCC versions prior to 3.0,
+these were the only names available.
@comment limits.h
@comment GNU
Modified: fsf/trunk/libc/manual/libc.texinfo
==============================================================================
--- fsf/trunk/libc/manual/libc.texinfo (original)
+++ fsf/trunk/libc/manual/libc.texinfo Thu Feb 23 00:02:24 2012
@@ -19,8 +19,8 @@
@c sold 0.06/1.09, print run out 21may96
@set EDITION 0.13
-@set VERSION 2.15.90
-@set UPDATED 2012-02-21
+@set VERSION 2.14
+@set UPDATED 2011-07-19
@set ISBN 1-882114-55-8
@copying
Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Thu Feb 23 00:02:24 2012
@@ -4632,6 +4632,29 @@
TEST_f_f (nearbyint, 524286.75, 524287.0);
TEST_f_f (nearbyint, 524288.75, 524289.0);
+ TEST_f_f (nearbyint, 1048576.75, 1048577.0);
+ TEST_f_f (nearbyint, 2097152.75, 2097153.0);
+ TEST_f_f (nearbyint, 2492472.75, 2492473.0);
+ TEST_f_f (nearbyint, 2886220.75, 2886221.0);
+ TEST_f_f (nearbyint, 3058792.75, 3058793.0);
+ TEST_f_f (nearbyint, -1048576.75, -1048577.0);
+ TEST_f_f (nearbyint, -2097152.75, -2097153.0);
+ TEST_f_f (nearbyint, -2492472.75, -2492473.0);
+ TEST_f_f (nearbyint, -2886220.75, -2886221.0);
+ TEST_f_f (nearbyint, -3058792.75, -3058793.0);
+#ifndef TEST_FLOAT
+ TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0);
+ TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0);
+ TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0);
+ TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0);
+ TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0);
+ TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0);
+ TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0);
+ TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0);
+ TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0);
+ TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0);
+#endif
+
END (nearbyint);
}
@@ -5037,6 +5060,22 @@
TEST_f_f (rint, 262142.75, 262143.0);
TEST_f_f (rint, 524286.75, 524287.0);
TEST_f_f (rint, 524288.75, 524289.0);
+ TEST_f_f (rint, 1048576.75, 1048577.0);
+ TEST_f_f (rint, 2097152.75, 2097153.0);
+ TEST_f_f (rint, -1048576.75, -1048577.0);
+ TEST_f_f (rint, -2097152.75, -2097153.0);
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
+ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
+ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
+ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
+ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
+ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
+ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
+ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+#endif
#ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */
TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
@@ -5137,6 +5176,22 @@
TEST_f_f (rint, -0.1, -0.0);
TEST_f_f (rint, -0.25, -0.0);
TEST_f_f (rint, -0.625, -1.0);
+ TEST_f_f (rint, 1048576.75, 1048577.0);
+ TEST_f_f (rint, 2097152.75, 2097153.0);
+ TEST_f_f (rint, -1048576.75, -1048577.0);
+ TEST_f_f (rint, -2097152.75, -2097153.0);
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
+ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
+ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
+ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
+ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
+ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
+ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
+ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+#endif
#ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */
TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
@@ -5207,6 +5262,22 @@
TEST_f_f (rint, -0.1, -0.0);
TEST_f_f (rint, -0.25, -0.0);
TEST_f_f (rint, -0.625, -0.0);
+ TEST_f_f (rint, 1048576.75, 1048576.0);
+ TEST_f_f (rint, 2097152.75, 2097152.0);
+ TEST_f_f (rint, -1048576.75, -1048576.0);
+ TEST_f_f (rint, -2097152.75, -2097152.0);
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
+ TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
+ TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
+ TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
+ TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
+ TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
+ TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
+ TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
+#endif
#ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */
TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
@@ -5277,6 +5348,22 @@
TEST_f_f (rint, -0.1, -1.0);
TEST_f_f (rint, -0.25, -1.0);
TEST_f_f (rint, -0.625, -1.0);
+ TEST_f_f (rint, 1048576.75, 1048576.0);
+ TEST_f_f (rint, 2097152.75, 2097152.0);
+ TEST_f_f (rint, -1048576.75, -1048577.0);
+ TEST_f_f (rint, -2097152.75, -2097153.0);
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
+ TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
+ TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
+ TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
+ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
+ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
+ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
+ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+#endif
#ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */
TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
@@ -5347,6 +5434,22 @@
TEST_f_f (rint, -0.1, -0.0);
TEST_f_f (rint, -0.25, -0.0);
TEST_f_f (rint, -0.625, -0.0);
+ TEST_f_f (rint, 1048576.75, 1048577.0);
+ TEST_f_f (rint, 2097152.75, 2097153.0);
+ TEST_f_f (rint, -1048576.75, -1048576.0);
+ TEST_f_f (rint, -2097152.75, -2097152.0);
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
+ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
+ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
+ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
+ TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
+ TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
+ TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
+ TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
+#endif
#ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */
TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
Modified: fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c Thu Feb 23 00:02:24 2012
@@ -30,18 +30,12 @@
{
fenv_t env;
int32_t i0,j0,sx;
- u_int32_t i,i1;
float w,t;
GET_FLOAT_WORD(i0,x);
sx = (i0>>31)&1;
j0 = ((i0>>23)&0xff)-0x7f;
if(j0<23) {
if(j0<0) {
- if((i0&0x7fffffff)==0) return x;
- i1 = (i0&0x07fffff);
- i0 &= 0xfff00000;
- i0 |= ((i1|-i1)>>9)&0x400000;
- SET_FLOAT_WORD(x,i0);
libc_feholdexceptf (&env);
w = TWO23[sx]+x;
t = w-TWO23[sx];
@@ -49,17 +43,11 @@
GET_FLOAT_WORD(i0,t);
SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
return t;
- } else {
- i = (0x007fffff)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- i>>=1;
- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
}
} else {
if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
else return x; /* x is integral */
}
- SET_FLOAT_WORD(x,i0);
libc_feholdexceptf (&env);
w = TWO23[sx]+x;
t = w-TWO23[sx];
Modified: fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c Thu Feb 23 00:02:24 2012
@@ -26,34 +26,22 @@
__rintf(float x)
{
int32_t i0,j0,sx;
- u_int32_t i,i1;
float w,t;
GET_FLOAT_WORD(i0,x);
sx = (i0>>31)&1;
j0 = ((i0>>23)&0xff)-0x7f;
if(j0<23) {
if(j0<0) {
- if((i0&0x7fffffff)==0) return x;
- i1 = (i0&0x07fffff);
- i0 &= 0xfff00000;
- i0 |= ((i1|-i1)>>9)&0x400000;
- SET_FLOAT_WORD(x,i0);
w = TWO23[sx]+x;
t = w-TWO23[sx];
GET_FLOAT_WORD(i0,t);
SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
return t;
- } else {
- i = (0x007fffff)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- i>>=1;
- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
}
} else {
if(j0==0x80) return x+x; /* inf or NaN */
else return x; /* x is integral */
}
- SET_FLOAT_WORD(x,i0);
w = TWO23[sx]+x;
return w-TWO23[sx];
}
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits