Fix libm-test.inc ulps calculation for subnormals (bug 14064).

This commit is contained in:
Joseph Myers 2012-05-06 18:20:21 +00:00
parent 62881be42d
commit 6c23e11c4d
3 changed files with 10 additions and 3 deletions

View File

@ -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> 2012-05-06 Andreas Jaeger <aj@suse.de>
* Makeconfig (+math-flags): New, set to -frounding-math. * Makeconfig (+math-flags): New, set to -frounding-math.

2
NEWS
View File

@ -23,7 +23,7 @@ Version 2.16
13854, 13871, 13872, 13873, 13879, 13883, 13886, 13892, 13895, 13908, 13854, 13871, 13872, 13873, 13879, 13883, 13886, 13892, 13895, 13908,
13910, 13911, 13912, 13913, 13915, 13916, 13917, 13918, 13919, 13920, 13910, 13911, 13912, 13913, 13915, 13916, 13917, 13918, 13919, 13920,
13921, 13922, 13924, 13926, 13927, 13928, 13938, 13941, 13942, 13963, 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: * ISO C11 support:

View 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); ulp = diff / FUNC(ldexp) (1.0, FUNC(ilogb) (expected) - MANT_DIG);
break; break;
case FP_SUBNORMAL: case FP_SUBNORMAL:
ulp = (FUNC(ldexp) (diff, MANT_DIG) /* 1ulp for a subnormal value, shifted by MANT_DIG, is the
/ FUNC(ldexp) (1.0, FUNC(ilogb) (expected))); least normal value. */
ulp = (FUNC(ldexp) (diff, MANT_DIG) / min_value);
break; break;
default: default:
/* It should never happen. */ /* It should never happen. */