summaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2012-05-06 18:20:21 +0000
committerJoseph Myers <joseph@codesourcery.com>2012-05-06 18:20:21 +0000
commit6c23e11c4dd036e65073d4e4d6bc971a445deaea (patch)
tree1b9c56995492fdc9fc46f0609769b75b494eacc4 /math
parent62881be42dd5a81785f630658c6762b214056978 (diff)
Fix libm-test.inc ulps calculation for subnormals (bug 14064).
Diffstat (limited to 'math')
-rw-r--r--math/libm-test.inc5
1 files changed, 3 insertions, 2 deletions
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 59192ed0c5..d65c3e5844 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. */