Mercurial > emacs
changeset 5776:6130ebde8d3b
(fmod): Implement it on systems where it's missing, using drem if available.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Fri, 04 Feb 1994 20:18:59 +0000 |
parents | 07a36e38e514 |
children | c3a89c49ab5d |
files | src/data.c |
diffstat | 1 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/data.c Fri Feb 04 17:13:26 1994 +0000 +++ b/src/data.c Fri Feb 04 20:18:59 1994 +0000 @@ -1778,6 +1778,19 @@ return val; } +#ifndef HAVE_FMOD +double +fmod (f1, f2) + double f1, f2; +{ +#ifdef HAVE_DREM /* Some systems use this non-standard name. */ + return (drem (f1, f2)); +#else /* Other systems don't seem to have it at all. */ + return (f1 - f2 * floor (f1/f2)); +#endif +} +#endif /* ! HAVE_FMOD */ + DEFUN ("mod", Fmod, Smod, 2, 2, 0, "Returns X modulo Y.\n\ The result falls between zero (inclusive) and Y (exclusive).\n\ @@ -1801,11 +1814,7 @@ if (f2 == 0) Fsignal (Qarith_error, Qnil); -#ifdef HAVE_FMOD f1 = fmod (f1, f2); -#else - f1 = drem (f1, f2); -#endif /* If the "remainder" comes out with the wrong sign, fix it. */ if ((f1 < 0) != (f2 < 0)) f1 += f2;