blob: a18ce166d0db8b9383f25a04c49634b87a6ddcad [file] [log] [blame]
Guido van Rossum57b18221996-08-29 18:10:41 +00001/* hypot() replacement */
2
Martin v. Löwis63bf1492007-11-12 05:14:05 +00003#include "Python.h"
Guido van Rossum57b18221996-08-29 18:10:41 +00004
Christian Heimes48723512008-01-20 14:28:28 +00005#ifndef HAVE_HYPOT
Thomas Woutersf70ef4f2000-07-22 18:47:25 +00006double hypot(double x, double y)
Guido van Rossum57b18221996-08-29 18:10:41 +00007{
8 double yx;
9
10 x = fabs(x);
11 y = fabs(y);
12 if (x < y) {
13 double temp = x;
14 x = y;
15 y = temp;
16 }
17 if (x == 0.)
18 return 0.;
19 else {
20 yx = y/x;
21 return x*sqrt(1.+yx*yx);
22 }
23}
Christian Heimes48723512008-01-20 14:28:28 +000024#endif /* HAVE_HYPOT */
25