From f17ac40d7cb8e8c462476b6ab703262f6b8f6da8 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 6 Jul 2012 11:17:41 +0000 Subject: Fix expm1 spurious underflow exceptions (bug 6778). --- math/libm-test.inc | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'math') diff --git a/math/libm-test.inc b/math/libm-test.inc index 6adbb61..b87a40d 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -4039,12 +4039,32 @@ expm1_test (void) TEST_f_f (expm1, 11356.25L, 9.05128237311923300051376115753226014206e+4931L); #endif + TEST_f_f (expm1, -10.0, -0.9999546000702375151484644084844394493898L); + TEST_f_f (expm1, -16.0, -0.9999998874648252807408854862248209398728L); + TEST_f_f (expm1, -17.0, -0.9999999586006228121483334034897228104472L); + TEST_f_f (expm1, -18.0, -0.9999999847700202552873715638633707664826L); + TEST_f_f (expm1, -36.0, -0.9999999999999997680477169756430611687736L); + TEST_f_f (expm1, -37.0, -0.9999999999999999146695237425593420572195L); + TEST_f_f (expm1, -38.0, -0.9999999999999999686086720795197037129104L); + TEST_f_f (expm1, -44.0, -0.9999999999999999999221886775886620348429L); + TEST_f_f (expm1, -45.0, -0.9999999999999999999713748141945060635553L); + TEST_f_f (expm1, -46.0, -0.9999999999999999999894693826424461876212L); + TEST_f_f (expm1, -73.0, -0.9999999999999999999999999999999802074012L); + TEST_f_f (expm1, -74.0, -0.9999999999999999999999999999999927187098L); + TEST_f_f (expm1, -75.0, -0.9999999999999999999999999999999973213630L); + TEST_f_f (expm1, -78.0, -0.9999999999999999999999999999999998666385L); + TEST_f_f (expm1, -79.0, -0.9999999999999999999999999999999999509391L); + TEST_f_f (expm1, -80.0, -0.9999999999999999999999999999999999819515L); + TEST_f_f (expm1, -100.0, -1.0); + TEST_f_f (expm1, -1000.0, -1.0); + TEST_f_f (expm1, -10000.0, -1.0); + TEST_f_f (expm1, -100000.0, -1.0); + errno = 0; TEST_f_f (expm1, 100000.0, plus_infty, OVERFLOW_EXCEPTION); check_int ("errno for expm1(large) == ERANGE", errno, ERANGE, 0, 0, 0); TEST_f_f (expm1, max_value, plus_infty, OVERFLOW_EXCEPTION); - /* Bug 6778: spurious underflow exception. */ - TEST_f_f (expm1, -max_value, -1, UNDERFLOW_EXCEPTION_OK); + TEST_f_f (expm1, -max_value, -1); END (expm1); } -- cgit v1.1