blob: a18ce166d0db8b9383f25a04c49634b87a6ddcad [file] [log] [blame]
Guido van Rossum57b18221996-08-29 18:10:41 +00001/* hypot() replacement */
2
Christian Heimes32fbe592007-11-12 15:01:33 +00003#include "Python.h"
Guido van Rossum57b18221996-08-29 18:10:41 +00004
Christian Heimes9bd667a2008-01-20 15:14:11 +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 Heimes9bd667a2008-01-20 15:14:11 +000024#endif /* HAVE_HYPOT */
25