mirror of git://sourceware.org/git/glibc.git
[BZ #5857]
2008-03-09 Andreas Jaeger <aj@suse.de> [BZ #5857] * sysdeps/ieee754/dbl-64/s_rint.c (__rint): Handle j0==18. * sysdeps/ieee754/dbl-64/s_nearbyint.c (__nearbyint): Likewise. Patch by Mark Elliott <mark.h.elliott@lmco.com>. * math/libm-test.inc (nearbyint_test): Add new test cases from #5857. (rint_test): Likewise.
This commit is contained in:
parent
0facd3df4b
commit
af0498dc95
10
ChangeLog
10
ChangeLog
|
|
@ -1,3 +1,13 @@
|
||||||
|
2008-03-09 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
|
[BZ #5857]
|
||||||
|
* sysdeps/ieee754/dbl-64/s_rint.c (__rint): Handle j0==18.
|
||||||
|
* sysdeps/ieee754/dbl-64/s_nearbyint.c (__nearbyint): Likewise.
|
||||||
|
Patch by Mark Elliott <mark.h.elliott@lmco.com>.
|
||||||
|
|
||||||
|
* math/libm-test.inc (nearbyint_test): Add new test cases from #5857.
|
||||||
|
(rint_test): Likewise.
|
||||||
|
|
||||||
2008-03-24 Ulrich Drepper <drepper@redhat.com>
|
2008-03-24 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* nis/nis_call.c (nis_server_cache_search): Save errno around stat
|
* nis/nis_call.c (nis_server_cache_search): Save errno around stat
|
||||||
|
|
|
||||||
|
|
@ -4481,6 +4481,11 @@ nearbyint_test (void)
|
||||||
TEST_f_f (nearbyint, -0.5, minus_zero);
|
TEST_f_f (nearbyint, -0.5, minus_zero);
|
||||||
TEST_f_f (nearbyint, -1.5, -2.0);
|
TEST_f_f (nearbyint, -1.5, -2.0);
|
||||||
|
|
||||||
|
TEST_f_f (nearbyint, 262144.75, 262145.0);
|
||||||
|
TEST_f_f (nearbyint, 262142.75, 262143.0);
|
||||||
|
TEST_f_f (nearbyint, 524286.75, 524287.0);
|
||||||
|
TEST_f_f (nearbyint, 524288.75, 524289.0);
|
||||||
|
|
||||||
END (nearbyint);
|
END (nearbyint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4852,6 +4857,10 @@ rint_test (void)
|
||||||
TEST_f_f (rint, -0.1, -0.0);
|
TEST_f_f (rint, -0.1, -0.0);
|
||||||
TEST_f_f (rint, -0.25, -0.0);
|
TEST_f_f (rint, -0.25, -0.0);
|
||||||
TEST_f_f (rint, -0.625, -1.0);
|
TEST_f_f (rint, -0.625, -1.0);
|
||||||
|
TEST_f_f (rint, 262144.75, 262145.0);
|
||||||
|
TEST_f_f (rint, 262142.75, 262143.0);
|
||||||
|
TEST_f_f (rint, 524286.75, 524287.0);
|
||||||
|
TEST_f_f (rint, 524288.75, 524289.0);
|
||||||
#ifdef TEST_LDOUBLE
|
#ifdef TEST_LDOUBLE
|
||||||
/* The result can only be represented in long double. */
|
/* The result can only be represented in long double. */
|
||||||
TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
|
TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
|
||||||
|
|
|
||||||
|
|
@ -71,8 +71,15 @@ TWO52[2]={
|
||||||
if(((i0&i)|i1)==0) return x; /* x is integral */
|
if(((i0&i)|i1)==0) return x; /* x is integral */
|
||||||
i>>=1;
|
i>>=1;
|
||||||
if(((i0&i)|i1)!=0) {
|
if(((i0&i)|i1)!=0) {
|
||||||
if(j0==19) i1 = 0x40000000; else
|
if (j0==19)
|
||||||
|
i1 = 0x40000000;
|
||||||
|
else if (j0<18)
|
||||||
i0 = (i0&(~i))|((0x20000)>>j0);
|
i0 = (i0&(~i))|((0x20000)>>j0);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
i0 &= ~i;
|
||||||
|
i1 = 0x80000000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (j0>51) {
|
} else if (j0>51) {
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,15 @@ TWO52[2]={
|
||||||
if(((i0&i)|i1)==0) return x; /* x is integral */
|
if(((i0&i)|i1)==0) return x; /* x is integral */
|
||||||
i>>=1;
|
i>>=1;
|
||||||
if(((i0&i)|i1)!=0) {
|
if(((i0&i)|i1)!=0) {
|
||||||
if(j0==19) i1 = 0x40000000; else
|
if (j0==19)
|
||||||
i0 = (i0&(~i))|((0x20000)>>j0);
|
i1 = 0x40000000;
|
||||||
|
else if (j0<18)
|
||||||
|
i0 = (i0&(~i))|((0x20000)>>j0);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
i0 &= ~i;
|
||||||
|
i1 = 0x80000000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (j0>51) {
|
} else if (j0>51) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue