ref: c2a5d7e3f28e86aeef1e4e37e2b88e46af90b62c
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); }