[issue41513] Scale by power of two in math.hypot()

Tim Peters report at bugs.python.org
Sat Aug 15 01:03:13 EDT 2020


Tim Peters <tim at python.org> added the comment:

Cute: for any number of arguments, try computing h**2, then one at a time subtract a**2 (an argument squared) in descending order of magnitude.  Call that (h**2 - a1**2 - a2**2 - ...) x.

Then

    h -= x/(2*h)

That should reduce errors too, although not nearly so effectively, since it's a cheap way of estimating (& correcting for) the discrepancy between sum(a**2) and h**2.

Note that "descending order" is important: it's trying to cancel as many leading bits as possible as early as possible, so that lower-order bits come into play.

Then again ... why bother? ;-)

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41513>
_______________________________________


More information about the Python-bugs-list mailing list