From 6c23e11c4dd036e65073d4e4d6bc971a445deaea Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sun, 6 May 2012 18:20:21 +0000 Subject: Fix libm-test.inc ulps calculation for subnormals (bug 14064). --- math/libm-test.inc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'math') diff --git a/math/libm-test.inc b/math/libm-test.inc index 59192ed..d65c3e5 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -503,8 +503,9 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected, ulp = diff / FUNC(ldexp) (1.0, FUNC(ilogb) (expected) - MANT_DIG); break; case FP_SUBNORMAL: - ulp = (FUNC(ldexp) (diff, MANT_DIG) - / FUNC(ldexp) (1.0, FUNC(ilogb) (expected))); + /* 1ulp for a subnormal value, shifted by MANT_DIG, is the + least normal value. */ + ulp = (FUNC(ldexp) (diff, MANT_DIG) / min_value); break; default: /* It should never happen. */ -- cgit v1.1