• Benjamin Peterson's avatar
    Merged revisions… · dcf97b98
    Benjamin Peterson yazdı
    Merged revisions 64434-64435,64440-64443,64445,64447-64448,64450,64452,64455,64461,64464,64466,64468 via svnmerge from
    svn+ssh://pythondev@svn.python.org/python/trunk
    
    ........
      r64434 | andrew.kuchling | 2008-06-20 18:13:58 -0500 (Fri, 20 Jun 2008) | 1 line
    
      Remove request for e-mail; it's unlikely these classes will be saved
    ........
      r64435 | andrew.kuchling | 2008-06-20 18:14:32 -0500 (Fri, 20 Jun 2008) | 1 line
    
      Grammar fixes
    ........
      r64440 | andrew.kuchling | 2008-06-21 08:29:12 -0500 (Sat, 21 Jun 2008) | 1 line
    
      Docstring typo
    ........
      r64441 | andrew.kuchling | 2008-06-21 08:47:20 -0500 (Sat, 21 Jun 2008) | 1 line
    
      Use repr() for bad input strings; this makes the empty string or binary characters more visible
    ........
      r64442 | andrew.kuchling | 2008-06-21 08:48:38 -0500 (Sat, 21 Jun 2008) | 1 line
    
      Docstring correction
    ........
      r64443 | georg.brandl | 2008-06-21 09:26:19 -0500 (Sat, 21 Jun 2008) | 2 lines
    
      Documentation fix.
    ........
      r64445 | facundo.batista | 2008-06-21 12:30:06 -0500 (Sat, 21 Jun 2008) | 3 lines
    
    
      Reviewed and updated the documentation. Fixes #3017.
    ........
      r64447 | facundo.batista | 2008-06-21 13:58:04 -0500 (Sat, 21 Jun 2008) | 6 lines
    
    
      Now a from submitted via POST that also has a query string
      will contain both FieldStorage and MiniFieldStorage items.
    
      Fixes #1817.
    ........
      r64448 | facundo.batista | 2008-06-21 14:48:19 -0500 (Sat, 21 Jun 2008) | 5 lines
    
    
      In the deprecated functions I added an alert to review
      specially a section of the subprocess documentation
      that helps with the replacing of those functionss.
    ........
      r64450 | georg.brandl | 2008-06-22 04:05:29 -0500 (Sun, 22 Jun 2008) | 2 lines
    
      Turn section references into proper cross-references.
    ........
      r64452 | facundo.batista | 2008-06-22 08:36:20 -0500 (Sun, 22 Jun 2008) | 5 lines
    
    
      Issue #2722. Now the char buffer to support the path string has
      not fixed length, it mallocs memory if needed. As a result, we
      don't have a maximum for the getcwd() method.
    ........
      r64455 | facundo.batista | 2008-06-22 10:27:10 -0500 (Sun, 22 Jun 2008) | 4 lines
    
    
      Issue 3164. Small fix to don't repeat a comparation
      without necessity.
    ........
      r64461 | georg.brandl | 2008-06-22 13:11:52 -0500 (Sun, 22 Jun 2008) | 2 lines
    
      #3085: Fix syntax error.
    ........
      r64464 | georg.brandl | 2008-06-22 13:31:54 -0500 (Sun, 22 Jun 2008) | 2 lines
    
      Expand docstrings of sqlite3 functions.
    ........
      r64466 | georg.brandl | 2008-06-22 14:07:59 -0500 (Sun, 22 Jun 2008) | 2 lines
    
      Write out "phi" consistently.
    ........
      r64468 | facundo.batista | 2008-06-22 14:35:24 -0500 (Sun, 22 Jun 2008) | 4 lines
    
    
      Just returning nothing instead of rising TestSkipped, because
      it makes the test fail in the trunk.loewis-sun buildbot.
    ........
    dcf97b98
cmath.rst 6.46 KB

:mod:`cmath` --- Mathematical functions for complex numbers

This module is always available. It provides access to mathematical functions for complex numbers. The functions in this module accept integers, floating-point numbers or complex numbers as arguments. They will also accept any Python object that has either a :meth:`__complex__` or a :meth:`__float__` method: these methods are used to convert the object to a complex or floating-point number, respectively, and the function is then applied to the result of the conversion.

Note

On platforms with hardware and system-level support for signed zeros, functions involving branch cuts are continuous on both sides of the branch cut: the sign of the zero distinguishes one side of the branch cut from the other. On platforms that do not support signed zeros the continuity is as specified below.

Complex coordinates

Complex numbers can be expressed by two important coordinate systems. Python's :class:`complex` type uses rectangular coordinates where a number on the complex plain is defined by two floats, the real part and the imaginary part.

Definition:

z = x + 1j * y

x := real(z)
y := imag(z)

In engineering the polar coordinate system is popular for complex numbers. In polar coordinates a complex number is defined by the radius r and the phase angle phi. The radius r is the absolute value of the complex, which can be viewed as distance from (0, 0). The radius r is always 0 or a positive float. The phase angle phi is the counter clockwise angle from the positive x axis, e.g. 1 has the angle 0, 1j has the angle π/2 and -1 the angle .

Note

While :func:`phase` and func:polar return for a negative real they may return for a complex with a very small negative imaginary part, e.g. -1-1E-300j.

Definition:

z = r * exp(1j * phi)
z = r * cis(phi)

r := abs(z) := sqrt(real(z)**2 + imag(z)**2)
phi := phase(z) := atan2(imag(z), real(z))
cis(phi) := cos(phi) + 1j * sin(phi)

cmath functions

The module also defines two mathematical constants:

Note that the selection of functions is similar, but not identical, to that in module :mod:`math`. The reason for having two modules is that some users aren't interested in complex numbers, and perhaps don't even know what they are. They would rather have math.sqrt(-1) raise an exception than return a complex number. Also note that the functions defined in :mod:`cmath` always return a complex number, even if the answer can be expressed as a real number (in which case the complex number has an imaginary part of zero).

A note on branch cuts: They are curves along which the given function fails to be continuous. They are a necessary feature of many complex functions. It is assumed that if you need to compute with complex functions, you will understand about branch cuts. Consult almost any (not too elementary) book on complex variables for enlightenment. For information of the proper choice of branch cuts for numerical purposes, a good reference should be the following: