From 78fc0b57dfd4bf8d3d3ab82e4ffe98cbd6075dac Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sat, 16 Sep 2000 03:54:24 +0000 Subject: Fixed legit gripe from c.l.py that math.fmod docs aren't confusing enough. FRED, please check my monkey-see-monkey-do Tex fiddling! --- Doc/lib/libmath.tex | 4 +++- Modules/mathmodule.c | 3 ++- Objects/floatobject.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Doc/lib/libmath.tex b/Doc/lib/libmath.tex index 598431b..6edf502 100644 --- a/Doc/lib/libmath.tex +++ b/Doc/lib/libmath.tex @@ -60,7 +60,9 @@ Return the floor of \var{x} as a real. \end{funcdesc} \begin{funcdesc}{fmod}{x, y} -Return \code{\var{x} \%\ \var{y}}. +Return \code{fmod(\var{x}, \var{y})}, as defined by the platform C library. +Note that the Python expression \code{\var{x} \%\ \var{y}} may not return +the same result. \end{funcdesc} \begin{funcdesc}{frexp}{x} diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index fcd88ad..c313f35 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -106,7 +106,8 @@ FUNC1(fabs, fabs, FUNC1(floor, floor, "floor(x)\n\nReturn the floor of x as a real.") FUNC2(fmod, fmod, - "fmod(x,y)\n\nReturn x % y.") + "fmod(x,y)\n\nReturn fmod(x, y), according to platform C." + " x % y may differ.") FUNC2(hypot, hypot, "hypot(x,y)\n\nReturn the Euclidean distance, sqrt(x*x + y*y).") FUNC1(log, log, diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 946e3d9..774996f 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -399,7 +399,7 @@ float_divmod(PyFloatObject *v, PyFloatObject *w) PyFPE_START_PROTECT("divmod", return 0) vx = v->ob_fval; mod = fmod(vx, wx); - /* fmod is typically exact, so vx-mod is *mathemtically* an + /* fmod is typically exact, so vx-mod is *mathematically* an exact multiple of wx. But this is fp arithmetic, and fp vx - mod is an approximation; the result is that div may not be an exact integral value after the division, although -- cgit v0.12