]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix libm-test.inc ulps calculation for subnormals (bug 14064).
authorJoseph Myers <joseph@codesourcery.com>
Sun, 6 May 2012 18:20:21 +0000 (18:20 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Sun, 6 May 2012 18:20:21 +0000 (18:20 +0000)
ChangeLog
NEWS
math/libm-test.inc

index af9aac0979af6cb34fd7413cf3b3205036274699..4109a7587b7d262c8d9a930e99b292b182fb28be 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-05-06  Joseph Myers  <joseph@codesourcery.com>
+
+       [BZ #14064]
+       * math/libm-test.inc (check_float_internal): Correct ulp
+       calculation for subnormal expected results.
+
 2012-05-06  Andreas Jaeger  <aj@suse.de>
 
        * Makeconfig (+math-flags): New, set to -frounding-math.
diff --git a/NEWS b/NEWS
index 036d8d4c73fff47652a07911e3ec9eb557c715a9..66b1041485b8dc06ba2677796c078d715978709b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,7 +23,7 @@ Version 2.16
   13854, 13871, 13872, 13873, 13879, 13883, 13886, 13892, 13895, 13908,
   13910, 13911, 13912, 13913, 13915, 13916, 13917, 13918, 13919, 13920,
   13921, 13922, 13924, 13926, 13927, 13928, 13938, 13941, 13942, 13963,
-  13967, 13970, 13973, 14027, 14033, 14034, 14040, 14049, 14055
+  13967, 13970, 13973, 14027, 14033, 14034, 14040, 14049, 14055, 14064
 
 * ISO C11 support:
 
index 59192ed0c5e0a110273559d28d905fc8ec115c89..d65c3e58442aac3bba1226606384fe45ec7a0195 100644 (file)
@@ -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. */