annotate Python/hypot.c @ 44156:fb84bd9500a4

Remove special-casing of integer operations, to stop using PyInt_CheckExact.
author Martin v. Löwis <martin@v.loewis.de>
date Tue, 04 Dec 2007 20:34:12 +0000
parents 7bc4cc972b0b
children ef859cd754a7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4176
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 /* hypot() replacement */
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
43829
7bc4cc972b0b Merged revisions 58939-58946 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 18835
diff changeset
3 #include "Python.h"
4176
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
13658
f79434ee41fa Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents: 4176
diff changeset
5 double hypot(double x, double y)
4176
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 {
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 double yx;
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
8
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 x = fabs(x);
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 y = fabs(y);
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 if (x < y) {
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 double temp = x;
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 x = y;
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 y = temp;
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 }
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 if (x == 0.)
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 return 0.;
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 else {
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 yx = y/x;
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 return x*sqrt(1.+yx*yx);
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 }
37d009b1bf45 *** empty log message ***
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 }