mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	 8058bfa6fc
			
		
	
	
		8058bfa6fc
		
	
	
	
	
		
			
			cuts for the complex math functions. Includes a brief description of what branch cuts are.
		
			
				
	
	
		
			140 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \section{\module{cmath} ---
 | |
|          Mathematical functions for complex numbers}
 | |
| 
 | |
| \declaremodule{builtin}{cmath}
 | |
| \modulesynopsis{Mathematical functions for complex numbers.}
 | |
| 
 | |
| This module is always available.  It provides access to mathematical
 | |
| functions for complex numbers.  The functions are:
 | |
| 
 | |
| \begin{funcdesc}{acos}{x}
 | |
| Return the arc cosine of \var{x}.
 | |
| There are two branch cuts:
 | |
| One extends right from 1 along the real axis to \infinity, continuous
 | |
| from below.
 | |
| The other extends left from -1 along the real axis to -\infinity,
 | |
| continuous from above.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{acosh}{x}
 | |
| Return the hyperbolic arc cosine of \var{x}.
 | |
| There is one branch cut, extending left from 1 along the real axis
 | |
| to -\infinity, continuous from above.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{asin}{x}
 | |
| Return the arc sine of \var{x}.
 | |
| This has the same branch cuts as \function{acos()}.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{asinh}{x}
 | |
| Return the hyperbolic arc sine of \var{x}.
 | |
| There are two branch cuts, extending left from \plusminus\code{1j} to
 | |
| \plusminus-\infinity\code{j}, both continuous from above.
 | |
| These branch cuts should be considered a bug to be corrected in a
 | |
| future release.
 | |
| The correct branch cuts should extend along the imaginary axis,
 | |
| one from \code{1j} up to \infinity\code{j} and continuous from the
 | |
| right, and one from -\code{1j} down to -\infinity\code{j} and
 | |
| continuous from the left.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{atan}{x}
 | |
| Return the arc tangent of \var{x}.
 | |
| There are two branch cuts:
 | |
| One extends from \code{1j} along the imaginary axis to
 | |
| \infinity\code{j}, continuous from the left.
 | |
| The other extends from -\code{1j} along the imaginary axis to
 | |
| -\infinity\code{j}, continuous from the left.
 | |
| (This should probably be changed so the upper cut becomes continuous
 | |
| from the other side.)
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{atanh}{x}
 | |
| Return the hyperbolic arc tangent of \var{x}.
 | |
| There are two branch cuts:
 | |
| One extends from 1 along the real axis to \infinity, continuous
 | |
| from above.
 | |
| The other extends from -1 along the real axis to -\infinity,
 | |
| continuous from above.
 | |
| (This should probably be changed so the right cut becomes continuous from
 | |
| the other side.)
 | |
| \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}{exp}{x}
 | |
| Return the exponential value \code{e**\var{x}}.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{log}{x}
 | |
| Return the natural logarithm of \var{x}.
 | |
| There is one branch cut, from 0 along the negative real axis to
 | |
| -\infinity, continuous from above.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{log10}{x}
 | |
| Return the base-10 logarithm of \var{x}.
 | |
| This has the same branch cut as \function{log()}.
 | |
| \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}.
 | |
| This has the same branch cut as \function{log()}.
 | |
| \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}.
 | |
| \end{funcdesc}
 | |
| 
 | |
| The module also defines two mathematical constants:
 | |
| 
 | |
| \begin{datadesc}{pi}
 | |
| The mathematical constant \emph{pi}, as a real.
 | |
| \end{datadesc}
 | |
| 
 | |
| \begin{datadesc}{e}
 | |
| The mathematical constant \emph{e}, as a real.
 | |
| \end{datadesc}
 | |
| 
 | |
| Note that the selection of functions is similar, but not identical, to
 | |
| that in module \refmodule{math}\refbimodindex{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
 | |
| \code{math.sqrt(-1)} raise an exception than return a complex number.
 | |
| Also note that the functions defined in \module{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:
 | |
| 
 | |
| \begin{seealso}
 | |
|   \seetext{Kahan, W:  Branch cuts for complex elementary functions;
 | |
|            or, Much ado about nothings's sign bit.  In Iserles, A.,
 | |
|            and Powell, M. (eds.), \citetitle{The state of the art in
 | |
|            numerical analysis}. Clarendon Press (1987) pp165-211.}
 | |
| \end{seealso}
 |