Mark Dickinson <dicki...@gmail.com> 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 <rep...@bugs.python.org> <http://bugs.python.org/issue7632> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com