@@ -14,8 +14,81 @@ method: these methods are used to convert the object to a complex or
1414floating-point number, respectively, and the function is then applied to the
1515result of the conversion.
1616
17- The functions are :
17+ .. note : :
1818
19+ On platforms with hardware and system-level support for signed
20+ zeros, functions involving branch cuts are continuous on *both *
21+ sides of the branch cut: the sign of the zero distinguishes one
22+ side of the branch cut from the other. On platforms that do not
23+ support signed zeros the continuity is as specified below.
24+
25+
26+ Complex coordinates
27+ -------------------
28+
29+ Complex numbers can be expressed by two important coordinate systems.
30+ Python's :class: `complex ` type uses rectangular coordinates where a number
31+ on the complex plain is defined by two floats, the real part and the imaginary
32+ part.
33+
34+ Definition::
35+
36+ z = x + 1j * y
37+
38+ x := real(z)
39+ y := imag(z)
40+
41+ In engineering the polar coordinate system is popular for complex numbers. In
42+ polar coordinates a complex number is defined by the radius *r * and the phase
43+ angle *φ *. The radius *r * is the absolute value of the complex, which can be
44+ viewed as distance from (0, 0). The radius *r * is always 0 or a positive float.
45+ The phase angle *φ * is the counter clockwise angle from the positive x axis,
46+ e.g. *1 * has the angle *0 *, *1j * has the angle *π/2 * and *-1 * the angle *-π *.
47+
48+ .. note ::
49+ While :func: `phase ` and func:`polar ` return *+π * for a negative real they
50+ may return *-π * for a complex with a very small negative imaginary
51+ part, e.g. *-1-1E-300j *.
52+
53+
54+ Definition::
55+
56+ z = r * exp(1j * φ)
57+ z = r * cis(φ)
58+
59+ r := abs(z) := sqrt(real(z)**2 + imag(z)**2)
60+ phi := phase(z) := atan2(imag(z), real(z))
61+ cis(φ) := cos(φ) + 1j * sin(φ)
62+
63+
64+ .. function :: phase(x)
65+
66+ Return phase, also known as the argument, of a complex.
67+
68+ .. versionadded :: 2.6
69+
70+
71+ .. function :: polar(x)
72+
73+ Convert a :class: `complex ` from rectangular coordinates to polar
74+ coordinates. The function returns a tuple with the two elements
75+ *r * and *phi *. *r * is the distance from 0 and *phi * the phase
76+ angle.
77+
78+ .. versionadded :: 2.6
79+
80+
81+ .. function :: rect(r, phi)
82+
83+ Convert from polar coordinates to rectangular coordinates and return
84+ a :class: `complex `.
85+
86+ .. versionadded :: 2.6
87+
88+
89+
90+ cmath functions
91+ ---------------
1992
2093.. function :: acos(x)
2194
@@ -37,30 +110,35 @@ The functions are:
37110
38111.. function :: asinh(x)
39112
40- Return the hyperbolic arc sine of *x *. There are two branch cuts, extending
41- left from ``±1j `` to ``±∞j ``, both continuous from above. These branch cuts
42- should be considered a bug to be corrected in a future release. The correct
43- branch cuts should extend along the imaginary axis, one from ``1j `` up to
44- ``∞j `` and continuous from the right, and one from ``-1j `` down to ``-∞j ``
45- and continuous from the left.
113+ Return the hyperbolic arc sine of *x *. There are two branch cuts:
114+ One extends from ``1j `` along the imaginary axis to ``∞j ``,
115+ continuous from the right. The other extends from ``-1j `` along
116+ the imaginary axis to ``-∞j ``, continuous from the left.
117+
118+ .. versionchanged :: 2.6
119+ branch cuts moved to match those recommended by the C99 standard
46120
47121
48122.. function :: atan(x)
49123
50124 Return the arc tangent of *x *. There are two branch cuts: One extends from
51- ``1j `` along the imaginary axis to ``∞j ``, continuous from the left . The
125+ ``1j `` along the imaginary axis to ``∞j ``, continuous from the right . The
52126 other extends from ``-1j `` along the imaginary axis to ``-∞j ``, continuous
53- from the left. (This should probably be changed so the upper cut becomes
54- continuous from the other side.)
127+ from the left.
128+
129+ .. versionchanged :: 2.6
130+ direction of continuity of upper cut reversed
55131
56132
57133.. function :: atanh(x)
58134
59135 Return the hyperbolic arc tangent of *x *. There are two branch cuts: One
60- extends from ``1 `` along the real axis to ``∞ ``, continuous from above . The
136+ extends from ``1 `` along the real axis to ``∞ ``, continuous from below . The
61137 other extends from ``-1 `` along the real axis to ``-∞ ``, continuous from
62- above. (This should probably be changed so the right cut becomes continuous
63- from the other side.)
138+ above.
139+
140+ .. versionchanged :: 2.6
141+ direction of continuity of right cut reversed
64142
65143
66144.. function :: cos(x)
@@ -78,6 +156,21 @@ The functions are:
78156 Return the exponential value ``e**x ``.
79157
80158
159+ .. function :: isinf(x)
160+
161+ Return *True * if the real or the imaginary part of x is positive
162+ or negative infinity.
163+
164+ .. versionadded :: 2.6
165+
166+
167+ .. function :: isnan(x)
168+
169+ Return *True * if the real or imaginary part of x is not a number (NaN).
170+
171+ .. versionadded :: 2.6
172+
173+
81174.. function :: log(x[, base])
82175
83176 Returns the logarithm of *x * to the given *base *. If the *base * is not
@@ -151,3 +244,4 @@ cuts for numerical purposes, a good reference should be the following:
151244 nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the art
152245 in numerical analysis. Clarendon Press (1987) pp165-211.
153246
247+
0 commit comments