Mark Dickinson <[email protected]> added the comment:
Okay, I think I've found the cause of the second rounding bug above: at the end
of the bigcomp function there's a correction block that looks like
...
else if (dd < 0) {
if (!dsign) /* does not happen for round-near */
retlow1:
dval(rv) -= ulp(rv);
}
else if (dd > 0) {
if (dsign) {
rethi1:
dval(rv) += ulp(rv);
}
}
else ...
The problem is that the += and -= corrections don't take into account the
possibility that bc->scale is nonzero, and for the case where the scaled rv is
subnormal, they'll typically have no effect.
I'll work on a fix... tomorrow.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue7632>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com