math: Use accurate answers for cos and sincos.

Use the most accurate hex literals possible for the answers to the
cos and sincos tests that vary according to the error in the rounding
of PI/2.

---

2013-04-24  Carlos O'Donell  <carlos@redhat.com>

	* math/libm-test.inc (cos_test): Use accurate hex constants.
	(sincost_test): Likewise.
This commit is contained in:
Carlos O'Donell 2013-04-24 16:29:33 -04:00
parent 5e22180060
commit 418601aa84
2 changed files with 15 additions and 10 deletions

View File

@ -1,3 +1,8 @@
2013-04-24 Carlos O'Donell <carlos@redhat.com>
* math/libm-test.inc (cos_test): Use accurate hex constants.
(sincost_test): Likewise.
2013-04-24 Joseph Myers <joseph@codesourcery.com> 2013-04-24 Joseph Myers <joseph@codesourcery.com>
* math/libm-test.inc (catan_test): Add more tests. * math/libm-test.inc (catan_test): Add more tests.

View File

@ -5413,23 +5413,23 @@ cos_test (void)
to each type. */ to each type. */
#ifdef TEST_FLOAT #ifdef TEST_FLOAT
/* 32-bit float. */ /* 32-bit float. */
TEST_f_f (cos, M_PI_2l, -4.371139000186241438857289400265215e-8L); TEST_f_f (cos, M_PI_2l, -0x1.777a5cp-25L);
#endif #endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53) #if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53)
/* 64-bit double or 64-bit long double. */ /* 64-bit double or 64-bit long double. */
TEST_f_f (cos, M_PI_2l, 6.123233995736765886130329661375001e-17L); TEST_f_f (cos, M_PI_2l, 0x1.1a62633145c07p-54L);
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64
/* 96-bit long double. */ /* 96-bit long double. */
TEST_f_f (cos, M_PI_2l, -2.50827880633416601177866354016537e-20L); TEST_f_f (cos, M_PI_2l, -0xe.ce675d1fc8f8cbbp-69L);
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106
/* 128-bit IBM long double. */ /* 128-bit IBM long double. */
TEST_f_f (cos, M_PI_2l, 1.082856673921913968223746169860580e-32L); TEST_f_f (cos, M_PI_2l, 0x1.c1cd129024e088a67cc74020bcp-107L);
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113
/* 128-bit long double. */ /* 128-bit long double. */
TEST_f_f (cos, M_PI_2l, 4.335905065061890512398522013021675e-35L); TEST_f_f (cos, M_PI_2l, 0x1.cd129024e088a67cc74020bbea64p-115L);
#endif #endif
TEST_f_f (cos, 0.75L, 0.731688868873820886311838753000084544L); TEST_f_f (cos, 0.75L, 0.731688868873820886311838753000084544L);
@ -12240,23 +12240,23 @@ sincos_test (void)
to each type. */ to each type. */
#ifdef TEST_FLOAT #ifdef TEST_FLOAT
/* 32-bit float. */ /* 32-bit float. */
TEST_extra (sincos, M_PI_2l, 1, -4.371139000186241438857289400265215e-8L); TEST_extra (sincos, M_PI_2l, 1, -0x1.777a5cp-25L);
#endif #endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53) #if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53)
/* 64-bit double or 64-bit long double. */ /* 64-bit double or 64-bit long double. */
TEST_extra (sincos, M_PI_2l, 1, 6.123233995736765886130329661375001e-17L); TEST_extra (sincos, M_PI_2l, 1, 0x1.1a62633145c07p-54L);
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64
/* 96-bit long double. */ /* 96-bit long double. */
TEST_extra (sincos, M_PI_2l, 1, -2.50827880633416601177866354016537e-20L); TEST_extra (sincos, M_PI_2l, 1, -0xe.ce675d1fc8f8cbbp-69L);
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106
/* 128-bit IBM long double. */ /* 128-bit IBM long double. */
TEST_extra (sincos, M_PI_2l, 1, 1.082856673921913968223746169860580e-32L); TEST_extra (sincos, M_PI_2l, 1, 0x1.c1cd129024e088a67cc74020bcp-107L);
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113
/* 128-bit long double. */ /* 128-bit long double. */
TEST_extra (sincos, M_PI_2l, 1, 4.335905065061890512398522013021675e-35L); TEST_extra (sincos, M_PI_2l, 1, 0x1.cd129024e088a67cc74020bbea64p-115L);
#endif #endif
TEST_extra (sincos, M_PI_6l, 0.5, 0.86602540378443864676372317075293616L); TEST_extra (sincos, M_PI_6l, 0.5, 0.86602540378443864676372317075293616L);