summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Doc/lib/libmath.tex
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/lib/libmath.tex
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (diff)
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/lib/libmath.tex')
-rw-r--r--sys/src/cmd/python/Doc/lib/libmath.tex209
1 files changed, 209 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Doc/lib/libmath.tex b/sys/src/cmd/python/Doc/lib/libmath.tex
new file mode 100644
index 000000000..e52f8f96f
--- /dev/null
+++ b/sys/src/cmd/python/Doc/lib/libmath.tex
@@ -0,0 +1,209 @@
+\section{\module{math} ---
+ Mathematical functions}
+
+\declaremodule{builtin}{math}
+\modulesynopsis{Mathematical functions (\function{sin()} etc.).}
+
+This module is always available. It provides access to the
+mathematical functions defined by the C standard.
+
+These functions cannot be used with complex numbers; use the functions
+of the same name from the \refmodule{cmath} module if you require
+support for complex numbers. The distinction between functions which
+support complex numbers and those which don't is made since most users
+do not want to learn quite as much mathematics as required to
+understand complex numbers. Receiving an exception instead of a
+complex result allows earlier detection of the unexpected complex
+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.
+
+Number-theoretic and representation functions:
+
+\begin{funcdesc}{ceil}{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}
+Return the absolute value of \var{x}.
+\end{funcdesc}
+
+\begin{funcdesc}{floor}{x}
+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 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}
+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}} exactly.
+If \var{x} is zero, returns \code{(0.0, 0)}, otherwise
+\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})}. 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}, and both are floats.
+\end{funcdesc}
+
+Note that \function{frexp()} and \function{modf()} have a different
+call/return pattern than their C equivalents: they take a single
+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).
+
+For the \function{ceil()}, \function{floor()}, and \function{modf()}
+functions, note that \emph{all} floating-point numbers of sufficiently
+large magnitude are exact integers. Python floats typically carry no more
+than 53 bits of precision (the same as the platform C double type), in
+which case any float \var{x} with \code{abs(\var{x}) >= 2**52}
+necessarily has no fractional bits.
+
+
+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}
+
+Hyperbolic 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}
+The mathematical constant \emph{pi}.
+\end{datadesc}
+
+\begin{datadesc}{e}
+The mathematical constant \emph{e}.
+\end{datadesc}
+
+\begin{notice}
+ The \module{math} module consists mostly of thin wrappers around
+ the platform C math library functions. Behavior in exceptional cases is
+ loosely specified by the C standards, and Python inherits much of its
+ math-function error-reporting behavior from the platform C
+ implementation. As a result,
+ the specific exceptions raised in error cases (and even whether some
+ arguments are considered to be exceptional at all) are not defined in any
+ useful cross-platform or cross-release way. For example, whether
+ \code{math.log(0)} returns \code{-Inf} or raises \exception{ValueError} or
+ \exception{OverflowError} isn't defined, and in
+ cases where \code{math.log(0)} raises \exception{OverflowError},
+ \code{math.log(0L)} may raise \exception{ValueError} instead.
+\end{notice}
+
+\begin{seealso}
+ \seemodule{cmath}{Complex number versions of many of these functions.}
+\end{seealso}