SF bug 996392: math and cmath docs don't specify radians

Major rewrite of the math module docs.  Slapped in "radians" where
appropriate; grouped the functions into reasonable categories; supplied
many more words to address common confusions about some of the subtler
issues.
This commit is contained in:
Tim Peters 2004-07-24 23:00:24 +00:00
parent 5253da163c
commit 66bb6e661c
2 changed files with 119 additions and 83 deletions

View File

@ -18,42 +18,13 @@ number used as a parameter, so that the programmer can determine how
and why it was generated in the first place.
The following functions are provided by this module. Except
when explicitly noted otherwise, all return values are floats:
when explicitly noted otherwise, all return values are floats.
\begin{funcdesc}{acos}{x}
Return the arc cosine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{asin}{x}
Return the arc sine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{atan}{x}
Return the arc tangent of \var{x}.
\end{funcdesc}
\begin{funcdesc}{atan2}{y, x}
Return \code{atan(\var{y} / \var{x})}.
\end{funcdesc}
Number-theoretic and representation functions:
\begin{funcdesc}{ceil}{x}
Return the ceiling of \var{x} as a float.
\end{funcdesc}
\begin{funcdesc}{cos}{x}
Return the cosine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{cosh}{x}
Return the hyperbolic cosine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{degrees}{x}
Converts angle \var{x} from radians to degrees.
\end{funcdesc}
\begin{funcdesc}{exp}{x}
Return \code{e**\var{x}}.
Return the ceiling of \var{x} as a float, the smallest integer value
greater than or equal to \var{x}.
\end{funcdesc}
\begin{funcdesc}{fabs}{x}
@ -61,73 +32,45 @@ Return the absolute value of \var{x}.
\end{funcdesc}
\begin{funcdesc}{floor}{x}
Return the floor of \var{x} as a float.
Return the floor of \var{x} as a float, the largest integer value
less than or equal to \var{x}.
\end{funcdesc}
\begin{funcdesc}{fmod}{x, 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.
the same result. The intent of the C standard is that
\code{fmod(\var{x}, \var{y})} be exactly (mathematically; to infinite
precision) equal to \code{\var{x} - \var{n}*\var{y}} for some integer
\var{n} such that the result has the same sign as \var{x} and
magnitude less than \code{abs(\var{y})}. Python's
\code{\var{x} \%\ \var{y}} returns a result with the sign of
\var{y} instead, and may not be exactly computable for float arguments.
For example, \code{fmod(-1e-100, 1e100)} is \code{-1e-100}, but the
result of Python's \code{-1e-100 \%\ 1e100} is \code{1e100-1e-100}, which
cannot be represented exactly as a float, and rounds to the surprising
\code{1e100}. For this reason, function \function{fmod()} is generally
preferred when working with floats, while Python's
\code{\var{x} \%\ \var{y}} is preferred when working with integers.
\end{funcdesc}
\begin{funcdesc}{frexp}{x}
% Blessed by Tim.
Return the mantissa and exponent of \var{x} as the pair
\code{(\var{m}, \var{e})}. \var{m} is a float and \var{e} is an
integer such that \code{\var{x} == \var{m} * 2**\var{e}}.
integer such that \code{\var{x} == \var{m} * 2**\var{e}} exactly.
If \var{x} is zero, returns \code{(0.0, 0)}, otherwise
\code{0.5 <= abs(\var{m}) < 1}.
\end{funcdesc}
\begin{funcdesc}{hypot}{x, y}
Return the Euclidean distance, \code{sqrt(\var{x}*\var{x} + \var{y}*\var{y})}.
\code{0.5 <= abs(\var{m}) < 1}. This is used to "pick apart" the
internal representation of a float in a portable way.
\end{funcdesc}
\begin{funcdesc}{ldexp}{x, i}
Return \code{\var{x} * (2**\var{i})}.
\end{funcdesc}
\begin{funcdesc}{log}{x\optional{, base}}
Returns the logarithm of \var{x} to the given \var{base}.
If the \var{base} is not specified, returns the natural logarithm of \var{x}.
\versionchanged[\var{base} argument added]{2.3}
\end{funcdesc}
\begin{funcdesc}{log10}{x}
Return the base-10 logarithm of \var{x}.
Return \code{\var{x} * (2**\var{i})}. This is essentially the inverse of
function \function{frexp()}.
\end{funcdesc}
\begin{funcdesc}{modf}{x}
Return the fractional and integer parts of \var{x}. Both results
carry the sign of \var{x}. The integer part is returned as a float.
\end{funcdesc}
\begin{funcdesc}{pow}{x, y}
Return \code{\var{x}**\var{y}}.
\end{funcdesc}
\begin{funcdesc}{radians}{x}
Converts angle \var{x} from degrees to radians.
\end{funcdesc}
\begin{funcdesc}{sin}{x}
Return the sine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{sinh}{x}
Return the hyperbolic sine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{sqrt}{x}
Return the square root of \var{x}.
\end{funcdesc}
\begin{funcdesc}{tan}{x}
Return the tangent of \var{x}.
\end{funcdesc}
\begin{funcdesc}{tanh}{x}
Return the hyperbolic tangent of \var{x}.
carry the sign of \var{x}, and both are floats.
\end{funcdesc}
Note that \function{frexp()} and \function{modf()} have a different
@ -136,6 +79,98 @@ argument and return a pair of values, rather than returning their
second return value through an `output parameter' (there is no such
thing in Python).
Power and logarithmic functions:
\begin{funcdesc}{exp}{x}
Return \code{e**\var{x}}.
\end{funcdesc}
\begin{funcdesc}{log}{x\optional{, base}}
Return the logarithm of \var{x} to the given \var{base}.
If the \var{base} is not specified, return the natural logarithm of \var{x}
(that is, the logarithm to base \emph{e}).
\versionchanged[\var{base} argument added]{2.3}
\end{funcdesc}
\begin{funcdesc}{log10}{x}
Return the base-10 logarithm of \var{x}.
\end{funcdesc}
\begin{funcdesc}{pow}{x, y}
Return \code{\var{x}**\var{y}}.
\end{funcdesc}
\begin{funcdesc}{sqrt}{x}
Return the square root of \var{x}.
\end{funcdesc}
Trigonometric functions:
\begin{funcdesc}{acos}{x}
Return the arc cosine of \var{x}, in radians.
\end{funcdesc}
\begin{funcdesc}{asin}{x}
Return the arc sine of \var{x}, in radians.
\end{funcdesc}
\begin{funcdesc}{atan}{x}
Return the arc tangent of \var{x}, in radians.
\end{funcdesc}
\begin{funcdesc}{atan2}{y, x}
Return \code{atan(\var{y} / \var{x})}, in radians.
The result is between \code{-pi} and \code{pi}.
The vector in the plane from the origin to point \code{(\var{x}, \var{y})}
makes this angle with the positive X axis.
The point of \function{atan2()} is that the signs of both inputs are
known to it, so it can compute the correct quadrant for the angle.
For example, \code{atan(1}) and \code{atan2(1, 1)} are both \code{pi/4},
but \code{atan2(-1, -1)} is \code{-3*pi/4}.
\end{funcdesc}
\begin{funcdesc}{cos}{x}
Return the cosine of \var{x} radians.
\end{funcdesc}
\begin{funcdesc}{hypot}{x, y}
Return the Euclidean norm, \code{sqrt(\var{x}*\var{x} + \var{y}*\var{y})}.
This is the length of the vector from the origin to point
\code{(\var{x}, \var{y})}.
\end{funcdesc}
\begin{funcdesc}{sin}{x}
Return the sine of \var{x} radians.
\end{funcdesc}
\begin{funcdesc}{tan}{x}
Return the tangent of \var{x} radians.
\end{funcdesc}
Angular conversion:
\begin{funcdesc}{degrees}{x}
Converts angle \var{x} from radians to degrees.
\end{funcdesc}
\begin{funcdesc}{radians}{x}
Converts angle \var{x} from degrees to radians.
\end{funcdesc}
Hyerbolic functions:
\begin{funcdesc}{cosh}{x}
Return the hyperbolic cosine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{sinh}{x}
Return the hyperbolic sine of \var{x}.
\end{funcdesc}
\begin{funcdesc}{tanh}{x}
Return the hyperbolic tangent of \var{x}.
\end{funcdesc}
The module also defines two mathematical constants:
\begin{datadesc}{pi}

View File

@ -139,7 +139,7 @@ C API
Documentation
-------------
Improved the tutorial on creating types in C.
- Improved the tutorial on creating types in C.
- point out the importance of reassigning data members before
assigning thier values
@ -148,6 +148,7 @@ Improved the tutorial on creating types in C.
- mention the labor saving Py_VISIT and Py_CLEAR macros.
- Major rewrite of the math module docs, to address common confusions.
New platforms
-------------