ref: a21c8d0216dc5b89f12975f17c1c5e626aa46eb3
dir: /sys/src/ape/lib/ap/math/hypot.c/
#include <math.h> /* * sqrt(a^2 + b^2) * (but carefully) */ double hypot(double a, double b) { double t; if(a < 0) a = -a; if(b < 0) b = -b; if(a > b) { t = a; a = b; b = t; } if(b == 0) return 0; a /= b; /* * pathological overflow possible * in the next line. */ return b * sqrt(1 + a*a); }