Skip to content

Commit

Permalink
[BZ #2549]
Browse files Browse the repository at this point in the history
2006-04-14  H.J. Lu  <hongjiu.lu@intel.com>
	[BZ #2549]
	* math/libm-test.inc (check_float_internal): Support
	denormalized return.
  • Loading branch information
Ulrich Drepper committed Oct 28, 2007
1 parent ad3371f commit e6b29af
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
6 changes: 6 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2006-04-14 H.J. Lu <hongjiu.lu@intel.com>

[BZ #2549]
* math/libm-test.inc (check_float_internal): Support
denormalized return.

2007-10-23 Andreas Jaeger <aj@suse.de>

[BZ #5208]
Expand Down
23 changes: 18 additions & 5 deletions math/libm-test.inc
Original file line number Diff line number Diff line change
Expand Up @@ -487,11 +487,24 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected,
else
{
diff = FUNC(fabs) (computed - expected);
/* ilogb (0) isn't allowed. */
if (expected == 0.0)
ulp = diff / FUNC(ldexp) (1.0, - MANT_DIG);
else
ulp = diff / FUNC(ldexp) (1.0, FUNC(ilogb) (expected) - MANT_DIG);
switch (fpclassify (expected))
{
case FP_ZERO:
/* ilogb (0) isn't allowed. */
ulp = diff / FUNC(ldexp) (1.0, - MANT_DIG);
break;
case FP_NORMAL:
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)));
break;
default:
/* It should never happen. */
abort ();
break;
}
set_max_error (ulp, curr_max_error);
print_diff = 1;
if ((exceptions & IGNORE_ZERO_INF_SIGN) == 0
Expand Down

0 comments on commit e6b29af

Please sign in to comment.