Mercurial > cpython-lru_cache-weakref
annotate Python/fmod.c @ 18333:41243cb4ea05 legacy-trunk
Another "if 0:" hack, this time to complain about otherwise invisible
"return expr" instances in generators (which latter may be generators
due to otherwise invisible "yield" stmts hiding in "if 0" blocks).
This was fun the first time, but this has gotten truly ugly now.
| author | Tim Peters <tim.peters@gmail.com> |
|---|---|
| date | Thu, 28 Jun 2001 01:52:22 +0000 |
| parents | 6f6f965c5e2d |
| children | 2dea40e40d9d |
| rev | line source |
|---|---|
| 145 | 1 |
| 6 | 2 /* Portable fmod(x, y) implementation for systems that don't have it */ |
| 3 | |
| 2434 | 4 #include "config.h" |
| 5 | |
|
13761
59f8cedcf049
merge Include/my*.h into Include/pyport.h
Peter Schneider-Kamp <nowonder@nowonder.de>
parents:
13256
diff
changeset
|
6 #include "pyport.h" |
| 6 | 7 #include <errno.h> |
| 8 | |
| 9 double | |
| 2434 | 10 fmod(double x, double y) |
| 6 | 11 { |
| 12 double i, f; | |
| 13 | |
| 14 if (y == 0.0) { | |
| 15 errno = EDOM; | |
| 16 return 0.0; | |
| 17 } | |
| 18 | |
| 19 /* return f such that x = i*y + f for some integer i | |
| 20 such that |f| < |y| and f has the same sign as x */ | |
| 21 | |
| 22 i = floor(x/y); | |
| 23 f = x - i*y; | |
| 24 if ((x < 0.0) != (y < 0.0)) | |
| 25 f = f-y; | |
| 26 return f; | |
| 27 } |
