From: Joseph Myers Date: Sun, 6 May 2012 18:20:21 +0000 (+0000) Subject: Fix libm-test.inc ulps calculation for subnormals (bug 14064). X-Git-Tag: glibc-2.16-tps~460 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c23e11c4dd036e65073d4e4d6bc971a445deaea;p=thirdparty%2Fglibc.git Fix libm-test.inc ulps calculation for subnormals (bug 14064). --- diff --git a/ChangeLog b/ChangeLog index af9aac0979a..4109a7587b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-05-06 Joseph Myers + + [BZ #14064] + * math/libm-test.inc (check_float_internal): Correct ulp + calculation for subnormal expected results. + 2012-05-06 Andreas Jaeger * Makeconfig (+math-flags): New, set to -frounding-math. diff --git a/NEWS b/NEWS index 036d8d4c73f..66b1041485b 100644 --- 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: diff --git a/math/libm-test.inc b/math/libm-test.inc index 59192ed0c5e..d65c3e58442 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. */