1 #include <math.h> 2 3 static double xhypot (const double x, const double y); 4 xhypot(const double x,const double y)5static double xhypot (const double x, const double y) 6 { 7 double xabs = fabs(x) ; 8 double yabs = fabs(y) ; 9 double min, max; 10 11 if (xabs < yabs) { 12 min = xabs ; 13 max = yabs ; 14 } else { 15 min = yabs ; 16 max = xabs ; 17 } 18 19 if (min == 0) 20 { 21 return max ; 22 } 23 24 { 25 double u = min / max ; 26 return max * sqrt (1 + u * u) ; 27 } 28 } 29