Raymond Hettinger <raymond.hettin...@gmail.com> added the comment:
Would it be reasonable for me to get started with a "mostly good enough" version using scaling and Kahan summation? from operator import sub from math import sqrt, fabs def kahan_summation(seq): # https://en.wikipedia.org/wiki/Kahan_summation_algorithm#The_algorithm csum = 0 err = 0 for x in seq: x -= err nsum = csum + x err = (nsum - csum) - x csum = nsum return csum def hypot(*sides): scale = max(map(fabs, sides)) return scale * sqrt(kahan_summation((s / scale)**2 for s in sides)) def dist(p, q): return hypot(*map(sub, p, q)) assert all(hypot(*([1]*d)) == sqrt(d) for d in range(1, 10000)) print(dist(p=(11, 4, 10), q=(9, 10, 13.5))) ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue33089> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com