annotate Doc/lib/libmath.tex @ 25838:8540887bcec6 2.2

Backport of 2.183: Fix memory leak in add_subclass() found by NealN with valgrind.
author Guido van Rossum <guido@python.org>
date Fri, 18 Oct 2002 13:42:21 +0000
parents e23d5b2e228c
children 98f5bfb19c86 62403b93f470
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8918
acfffe14628e New section header style.
Fred Drake <fdrake@acm.org>
parents: 8716
diff changeset
1 \section{\module{math} ---
10646
e09f19441136 Markup nits.
Fred Drake <fdrake@acm.org>
parents: 9607
diff changeset
2 Mathematical functions}
e09f19441136 Markup nits.
Fred Drake <fdrake@acm.org>
parents: 9607
diff changeset
3
8716
760dcf197048 Adjusted to use the new module synopsis support macros.
Fred Drake <fdrake@acm.org>
parents: 7877
diff changeset
4 \declaremodule{builtin}{math}
760dcf197048 Adjusted to use the new module synopsis support macros.
Fred Drake <fdrake@acm.org>
parents: 7877
diff changeset
5 \modulesynopsis{Mathematical functions (\function{sin()} etc.).}
760dcf197048 Adjusted to use the new module synopsis support macros.
Fred Drake <fdrake@acm.org>
parents: 7877
diff changeset
6
10646
e09f19441136 Markup nits.
Fred Drake <fdrake@acm.org>
parents: 9607
diff changeset
7 This module is always available. It provides access to the
12223
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
8 mathematical functions defined by the C standard.
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
9
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
10 These functions cannot be used with complex numbers; use the functions
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
11 of the same name from the \refmodule{cmath} module if you require
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
12 support for complex numbers. The distinction between functions which
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
13 support complex numbers and those which don't is made since most users
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
14 do not want to learn quite as much mathematics as required to
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
15 understand complex numbers. Receiving an exception instead of a
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
16 complex result allows earlier detection of the unexpected complex
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
17 number used as a parameter, so that the programmer can determine how
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
18 and why it was generated in the first place.
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
19
e82e82b3b9ad Merged changes from the 1.5.2p2 release.
Fred Drake <fdrake@acm.org>
parents: 10646
diff changeset
20 The following functions provided by this module:
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
21
1471
2ec96140a36b Restructured library documentation
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 \begin{funcdesc}{acos}{x}
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
23 Return the arc cosine of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
24 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
25
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
26 \begin{funcdesc}{asin}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
27 Return the arc sine of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
28 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
29
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
30 \begin{funcdesc}{atan}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
31 Return the arc tangent of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
32 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
33
9607
8483953a9248 Rename the parameters of atan2(), based on comments from Guido & Peter
Fred Drake <fdrake@acm.org>
parents: 8918
diff changeset
34 \begin{funcdesc}{atan2}{y, x}
8483953a9248 Rename the parameters of atan2(), based on comments from Guido & Peter
Fred Drake <fdrake@acm.org>
parents: 8918
diff changeset
35 Return \code{atan(\var{y} / \var{x})}.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
36 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
37
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
38 \begin{funcdesc}{ceil}{x}
15602
e23d5b2e228c Do not talk about "real" numbers; talk about "floats" or "floating point
Fred Drake <fdrake@acm.org>
parents: 14616
diff changeset
39 Return the ceiling of \var{x} as a float.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
40 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
41
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
42 \begin{funcdesc}{cos}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
43 Return the cosine of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
44 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
45
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
46 \begin{funcdesc}{cosh}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
47 Return the hyperbolic cosine of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
48 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
49
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
50 \begin{funcdesc}{exp}{x}
6647
a7ea74a27993 Get rid of math mode in some places.
Guido van Rossum <guido@python.org>
parents: 6485
diff changeset
51 Return \code{e**\var{x}}.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
52 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
53
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
54 \begin{funcdesc}{fabs}{x}
15602
e23d5b2e228c Do not talk about "real" numbers; talk about "floats" or "floating point
Fred Drake <fdrake@acm.org>
parents: 14616
diff changeset
55 Return the absolute value of the floating point number \var{x}.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
56 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
57
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
58 \begin{funcdesc}{floor}{x}
15602
e23d5b2e228c Do not talk about "real" numbers; talk about "floats" or "floating point
Fred Drake <fdrake@acm.org>
parents: 14616
diff changeset
59 Return the floor of \var{x} as a float.
1471
2ec96140a36b Restructured library documentation
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 \end{funcdesc}
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
61
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
62 \begin{funcdesc}{fmod}{x, y}
14616
284508c653c7 Fixed legit gripe from c.l.py that math.fmod docs aren't confusing enough.
Tim Peters <tim.peters@gmail.com>
parents: 13912
diff changeset
63 Return \code{fmod(\var{x}, \var{y})}, as defined by the platform C library.
284508c653c7 Fixed legit gripe from c.l.py that math.fmod docs aren't confusing enough.
Tim Peters <tim.peters@gmail.com>
parents: 13912
diff changeset
64 Note that the Python expression \code{\var{x} \%\ \var{y}} may not return
284508c653c7 Fixed legit gripe from c.l.py that math.fmod docs aren't confusing enough.
Tim Peters <tim.peters@gmail.com>
parents: 13912
diff changeset
65 the same result.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
66 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
67
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
68 \begin{funcdesc}{frexp}{x}
13314
03aa26819ac2 Tim-blessed documentation for math.frexp().
Fred Drake <fdrake@acm.org>
parents: 12714
diff changeset
69 % Blessed by Tim.
03aa26819ac2 Tim-blessed documentation for math.frexp().
Fred Drake <fdrake@acm.org>
parents: 12714
diff changeset
70 Return the mantissa and exponent of \var{x} as the pair
03aa26819ac2 Tim-blessed documentation for math.frexp().
Fred Drake <fdrake@acm.org>
parents: 12714
diff changeset
71 \code{(\var{m}, \var{e})}. \var{m} is a float and \var{e} is an
03aa26819ac2 Tim-blessed documentation for math.frexp().
Fred Drake <fdrake@acm.org>
parents: 12714
diff changeset
72 integer such that \code{\var{x} == \var{m} * 2**\var{e}}.
03aa26819ac2 Tim-blessed documentation for math.frexp().
Fred Drake <fdrake@acm.org>
parents: 12714
diff changeset
73 If \var{x} is zero, returns \code{(0.0, 0)}, otherwise
03aa26819ac2 Tim-blessed documentation for math.frexp().
Fred Drake <fdrake@acm.org>
parents: 12714
diff changeset
74 \code{0.5 <= abs(\var{m}) < 1}.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
75 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
76
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
77 \begin{funcdesc}{hypot}{x, y}
7048
3eca5f37501a Typographical nits: Always set parameter names in \var{} in the running text.
Fred Drake <fdrake@acm.org>
parents: 6647
diff changeset
78 Return the Euclidean distance, \code{sqrt(\var{x}*\var{x} + \var{y}*\var{y})}.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
79 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
80
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
81 \begin{funcdesc}{ldexp}{x, i}
6647
a7ea74a27993 Get rid of math mode in some places.
Guido van Rossum <guido@python.org>
parents: 6485
diff changeset
82 Return \code{\var{x} * (2**\var{i})}.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
83 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
84
7157
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
85 \begin{funcdesc}{log}{x}
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
86 Return the natural logarithm of \var{x}.
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
87 \end{funcdesc}
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
88
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
89 \begin{funcdesc}{log10}{x}
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
90 Return the base-10 logarithm of \var{x}.
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
91 \end{funcdesc}
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
92
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
93 \begin{funcdesc}{modf}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
94 Return the fractional and integer parts of \var{x}. Both results
15602
e23d5b2e228c Do not talk about "real" numbers; talk about "floats" or "floating point
Fred Drake <fdrake@acm.org>
parents: 14616
diff changeset
95 carry the sign of \var{x}. The integer part is returned as a float.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
96 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
97
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
98 \begin{funcdesc}{pow}{x, y}
6647
a7ea74a27993 Get rid of math mode in some places.
Guido van Rossum <guido@python.org>
parents: 6485
diff changeset
99 Return \code{\var{x}**\var{y}}.
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
100 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
101
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
102 \begin{funcdesc}{sin}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
103 Return the sine of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
104 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
105
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
106 \begin{funcdesc}{sinh}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
107 Return the hyperbolic sine of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
108 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
109
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
110 \begin{funcdesc}{sqrt}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
111 Return the square root of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
112 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
113
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
114 \begin{funcdesc}{tan}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
115 Return the tangent of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
116 \end{funcdesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
117
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
118 \begin{funcdesc}{tanh}{x}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
119 Return the hyperbolic tangent of \var{x}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
120 \end{funcdesc}
1471
2ec96140a36b Restructured library documentation
Guido van Rossum <guido@python.org>
parents:
diff changeset
121
7157
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
122 Note that \function{frexp()} and \function{modf()} have a different
10646
e09f19441136 Markup nits.
Fred Drake <fdrake@acm.org>
parents: 9607
diff changeset
123 call/return pattern than their C equivalents: they take a single
7157
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
124 argument and return a pair of values, rather than returning their
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
125 second return value through an `output parameter' (there is no such
a6fa9f3cad13 Added descriptions for log() and log10().
Fred Drake <fdrake@acm.org>
parents: 7048
diff changeset
126 thing in Python).
1471
2ec96140a36b Restructured library documentation
Guido van Rossum <guido@python.org>
parents:
diff changeset
127
2ec96140a36b Restructured library documentation
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 The module also defines two mathematical constants:
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
129
1471
2ec96140a36b Restructured library documentation
Guido van Rossum <guido@python.org>
parents:
diff changeset
130 \begin{datadesc}{pi}
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
131 The mathematical constant \emph{pi}.
1471
2ec96140a36b Restructured library documentation
Guido van Rossum <guido@python.org>
parents:
diff changeset
132 \end{datadesc}
5818
3468ea8645ca AMK's megapatch:
Guido van Rossum <guido@python.org>
parents: 3375
diff changeset
133
6363
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
134 \begin{datadesc}{e}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
135 The mathematical constant \emph{e}.
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
136 \end{datadesc}
0c74688bc1ff Fixed up formatting.
Fred Drake <fdrake@acm.org>
parents: 5818
diff changeset
137
6485
2f258162aae2 Restore the \seealso formatting that got lost when I updated the math
Fred Drake <fdrake@acm.org>
parents: 6363
diff changeset
138 \begin{seealso}
2f258162aae2 Restore the \seealso formatting that got lost when I updated the math
Fred Drake <fdrake@acm.org>
parents: 6363
diff changeset
139 \seemodule{cmath}{Complex number versions of many of these functions.}
2f258162aae2 Restore the \seealso formatting that got lost when I updated the math
Fred Drake <fdrake@acm.org>
parents: 6363
diff changeset
140 \end{seealso}