| Fred Drake | 295da24 | 1998-08-10 19:42:37 +0000 | [diff] [blame] | 1 | \section{\module{math} --- | 
| Fred Drake | 69fa563 | 1999-04-21 16:29:57 +0000 | [diff] [blame] | 2 |          Mathematical functions} | 
 | 3 |  | 
| Fred Drake | b91e934 | 1998-07-23 17:59:49 +0000 | [diff] [blame] | 4 | \declaremodule{builtin}{math} | 
| Fred Drake | b91e934 | 1998-07-23 17:59:49 +0000 | [diff] [blame] | 5 | \modulesynopsis{Mathematical functions (\function{sin()} etc.).} | 
 | 6 |  | 
| Fred Drake | 69fa563 | 1999-04-21 16:29:57 +0000 | [diff] [blame] | 7 | This module is always available.  It provides access to the | 
| Fred Drake | 38e5d27 | 2000-04-03 20:13:55 +0000 | [diff] [blame] | 8 | mathematical functions defined by the C standard. | 
 | 9 |  | 
 | 10 | These functions cannot be used with complex numbers; use the functions | 
 | 11 | of the same name from the \refmodule{cmath} module if you require | 
 | 12 | support for complex numbers.  The distinction between functions which | 
 | 13 | support complex numbers and those which don't is made since most users | 
 | 14 | do not want to learn quite as much mathematics as required to | 
 | 15 | understand complex numbers.  Receiving an exception instead of a | 
 | 16 | complex result allows earlier detection of the unexpected complex | 
 | 17 | number used as a parameter, so that the programmer can determine how | 
 | 18 | and why it was generated in the first place. | 
 | 19 |  | 
 | 20 | The following functions provided by this module: | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 21 |  | 
| Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 22 | \begin{funcdesc}{acos}{x} | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 23 | Return the arc cosine of \var{x}. | 
| Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 24 | \end{funcdesc} | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 25 |  | 
 | 26 | \begin{funcdesc}{asin}{x} | 
 | 27 | Return the arc sine of \var{x}. | 
 | 28 | \end{funcdesc} | 
 | 29 |  | 
 | 30 | \begin{funcdesc}{atan}{x} | 
 | 31 | Return the arc tangent of \var{x}. | 
 | 32 | \end{funcdesc} | 
 | 33 |  | 
| Fred Drake | 64583d3 | 1998-12-08 16:10:44 +0000 | [diff] [blame] | 34 | \begin{funcdesc}{atan2}{y, x} | 
 | 35 | Return \code{atan(\var{y} / \var{x})}. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 36 | \end{funcdesc} | 
 | 37 |  | 
 | 38 | \begin{funcdesc}{ceil}{x} | 
| Fred Drake | 2b6d7bc | 2000-12-18 13:50:24 +0000 | [diff] [blame] | 39 | Return the ceiling of \var{x} as a float. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 40 | \end{funcdesc} | 
 | 41 |  | 
 | 42 | \begin{funcdesc}{cos}{x} | 
 | 43 | Return the cosine of \var{x}. | 
 | 44 | \end{funcdesc} | 
 | 45 |  | 
 | 46 | \begin{funcdesc}{cosh}{x} | 
 | 47 | Return the hyperbolic cosine of \var{x}. | 
 | 48 | \end{funcdesc} | 
 | 49 |  | 
| Raymond Hettinger | c045b49 | 2002-05-13 03:52:47 +0000 | [diff] [blame] | 50 | \begin{funcdesc}{degrees}{x} | 
 | 51 | Converts angle \var{x} from radians to degrees. | 
 | 52 | \end{funcdesc} | 
 | 53 |  | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 54 | \begin{funcdesc}{exp}{x} | 
| Guido van Rossum | f259efe | 1997-11-25 01:00:40 +0000 | [diff] [blame] | 55 | Return \code{e**\var{x}}. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 56 | \end{funcdesc} | 
 | 57 |  | 
 | 58 | \begin{funcdesc}{fabs}{x} | 
| Fred Drake | 2b6d7bc | 2000-12-18 13:50:24 +0000 | [diff] [blame] | 59 | Return the absolute value of the floating point number \var{x}. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 60 | \end{funcdesc} | 
 | 61 |  | 
 | 62 | \begin{funcdesc}{floor}{x} | 
| Fred Drake | 2b6d7bc | 2000-12-18 13:50:24 +0000 | [diff] [blame] | 63 | Return the floor of \var{x} as a float. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 64 | \end{funcdesc} | 
 | 65 |  | 
 | 66 | \begin{funcdesc}{fmod}{x, y} | 
| Tim Peters | 78fc0b5 | 2000-09-16 03:54:24 +0000 | [diff] [blame] | 67 | Return \code{fmod(\var{x}, \var{y})}, as defined by the platform C library. | 
 | 68 | Note that the Python expression \code{\var{x} \%\ \var{y}} may not return | 
 | 69 | the same result. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 70 | \end{funcdesc} | 
 | 71 |  | 
 | 72 | \begin{funcdesc}{frexp}{x} | 
| Fred Drake | fcc95a4 | 2000-07-03 06:38:17 +0000 | [diff] [blame] | 73 | % Blessed by Tim. | 
 | 74 | Return the mantissa and exponent of \var{x} as the pair | 
 | 75 | \code{(\var{m}, \var{e})}.  \var{m} is a float and \var{e} is an | 
 | 76 | integer such that \code{\var{x} == \var{m} * 2**\var{e}}. | 
 | 77 | If \var{x} is zero, returns \code{(0.0, 0)}, otherwise | 
 | 78 | \code{0.5 <= abs(\var{m}) < 1}. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 79 | \end{funcdesc} | 
 | 80 |  | 
 | 81 | \begin{funcdesc}{hypot}{x, y} | 
| Fred Drake | d327a8d | 1998-01-09 21:26:51 +0000 | [diff] [blame] | 82 | Return the Euclidean distance, \code{sqrt(\var{x}*\var{x} + \var{y}*\var{y})}. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 83 | \end{funcdesc} | 
 | 84 |  | 
 | 85 | \begin{funcdesc}{ldexp}{x, i} | 
| Guido van Rossum | f259efe | 1997-11-25 01:00:40 +0000 | [diff] [blame] | 86 | Return \code{\var{x} * (2**\var{i})}. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 87 | \end{funcdesc} | 
 | 88 |  | 
| Raymond Hettinger | 866964c | 2002-12-14 19:51:34 +0000 | [diff] [blame] | 89 | \begin{funcdesc}{log}{x\optional{, base}} | 
| Neal Norwitz | 212b43f | 2002-12-17 01:24:11 +0000 | [diff] [blame] | 90 | Returns the logarithm of \var{x} to the given \var{base}. | 
 | 91 | If the \var{base} is not specified, returns the natural logarithm of \var{x}. | 
| Raymond Hettinger | 866964c | 2002-12-14 19:51:34 +0000 | [diff] [blame] | 92 | \versionchanged[\var{base} argument added]{2.3} | 
| Fred Drake | 7c418ed | 1998-01-22 17:37:50 +0000 | [diff] [blame] | 93 | \end{funcdesc} | 
 | 94 |  | 
 | 95 | \begin{funcdesc}{log10}{x} | 
 | 96 | Return the base-10 logarithm of \var{x}. | 
 | 97 | \end{funcdesc} | 
 | 98 |  | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 99 | \begin{funcdesc}{modf}{x} | 
 | 100 | Return the fractional and integer parts of \var{x}.  Both results | 
| Fred Drake | 2b6d7bc | 2000-12-18 13:50:24 +0000 | [diff] [blame] | 101 | carry the sign of \var{x}.  The integer part is returned as a float. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 102 | \end{funcdesc} | 
 | 103 |  | 
 | 104 | \begin{funcdesc}{pow}{x, y} | 
| Guido van Rossum | f259efe | 1997-11-25 01:00:40 +0000 | [diff] [blame] | 105 | Return \code{\var{x}**\var{y}}. | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 106 | \end{funcdesc} | 
 | 107 |  | 
| Raymond Hettinger | c045b49 | 2002-05-13 03:52:47 +0000 | [diff] [blame] | 108 | \begin{funcdesc}{radians}{x} | 
 | 109 | Converts angle \var{x} from degrees to radians. | 
 | 110 | \end{funcdesc} | 
 | 111 |  | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 112 | \begin{funcdesc}{sin}{x} | 
 | 113 | Return the sine of \var{x}. | 
 | 114 | \end{funcdesc} | 
 | 115 |  | 
 | 116 | \begin{funcdesc}{sinh}{x} | 
 | 117 | Return the hyperbolic sine of \var{x}. | 
 | 118 | \end{funcdesc} | 
 | 119 |  | 
 | 120 | \begin{funcdesc}{sqrt}{x} | 
 | 121 | Return the square root of \var{x}. | 
 | 122 | \end{funcdesc} | 
 | 123 |  | 
 | 124 | \begin{funcdesc}{tan}{x} | 
 | 125 | Return the tangent of \var{x}. | 
 | 126 | \end{funcdesc} | 
 | 127 |  | 
 | 128 | \begin{funcdesc}{tanh}{x} | 
 | 129 | Return the hyperbolic tangent of \var{x}. | 
 | 130 | \end{funcdesc} | 
| Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 131 |  | 
| Fred Drake | 7c418ed | 1998-01-22 17:37:50 +0000 | [diff] [blame] | 132 | Note that \function{frexp()} and \function{modf()} have a different | 
| Fred Drake | 69fa563 | 1999-04-21 16:29:57 +0000 | [diff] [blame] | 133 | call/return pattern than their C equivalents: they take a single | 
| Fred Drake | 7c418ed | 1998-01-22 17:37:50 +0000 | [diff] [blame] | 134 | argument and return a pair of values, rather than returning their | 
 | 135 | second return value through an `output parameter' (there is no such | 
 | 136 | thing in Python). | 
| Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 137 |  | 
| Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 138 | The module also defines two mathematical constants: | 
| Guido van Rossum | e47da0a | 1997-07-17 16:34:52 +0000 | [diff] [blame] | 139 |  | 
| Fred Drake | b55e07f | 1997-09-30 21:59:27 +0000 | [diff] [blame] | 140 | \begin{datadesc}{pi} | 
 | 141 | The mathematical constant \emph{pi}. | 
 | 142 | \end{datadesc} | 
 | 143 |  | 
 | 144 | \begin{datadesc}{e} | 
 | 145 | The mathematical constant \emph{e}. | 
 | 146 | \end{datadesc} | 
 | 147 |  | 
| Fred Drake | 2950b2d | 1997-10-13 22:06:17 +0000 | [diff] [blame] | 148 | \begin{seealso} | 
 | 149 |   \seemodule{cmath}{Complex number versions of many of these functions.} | 
 | 150 | \end{seealso} |