diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Python/fmod.c | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Python/fmod.c')
-rw-r--r-- | sys/src/cmd/python/Python/fmod.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Python/fmod.c b/sys/src/cmd/python/Python/fmod.c new file mode 100644 index 000000000..919c6cc74 --- /dev/null +++ b/sys/src/cmd/python/Python/fmod.c @@ -0,0 +1,27 @@ + +/* Portable fmod(x, y) implementation for systems that don't have it */ + +#include "pyconfig.h" + +#include "pyport.h" +#include <errno.h> + +double +fmod(double x, double y) +{ + double i, f; + + if (y == 0.0) { + errno = EDOM; + return 0.0; + } + + /* return f such that x = i*y + f for some integer i + such that |f| < |y| and f has the same sign as x */ + + i = floor(x/y); + f = x - i*y; + if ((x < 0.0) != (y < 0.0)) + f = f-y; + return f; +} |