blob: da2b8cc586279150561e5650fa99b7f099148ece [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001:mod:`math` --- Mathematical functions
2======================================
3
4.. module:: math
5 :synopsis: Mathematical functions (sin() etc.).
6
Łukasz Langa288234f2013-01-18 13:40:43 +01007.. testsetup::
8
9 from math import fsum
Georg Brandl116aa622007-08-15 14:28:22 +000010
Terry Jan Reedyfa089b92016-06-11 15:02:54 -040011--------------
12
Georg Brandl116aa622007-08-15 14:28:22 +000013This module is always available. It provides access to the mathematical
14functions defined by the C standard.
15
16These functions cannot be used with complex numbers; use the functions of the
17same name from the :mod:`cmath` module if you require support for complex
18numbers. The distinction between functions which support complex numbers and
19those which don't is made since most users do not want to learn quite as much
20mathematics as required to understand complex numbers. Receiving an exception
21instead of a complex result allows earlier detection of the unexpected complex
22number used as a parameter, so that the programmer can determine how and why it
23was generated in the first place.
24
25The following functions are provided by this module. Except when explicitly
26noted otherwise, all return values are floats.
27
Georg Brandl116aa622007-08-15 14:28:22 +000028
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +000029Number-theoretic and representation functions
30---------------------------------------------
Georg Brandl116aa622007-08-15 14:28:22 +000031
32.. function:: ceil(x)
33
Georg Brandl2a033732008-04-05 17:37:09 +000034 Return the ceiling of *x*, the smallest integer greater than or equal to *x*.
35 If *x* is not a float, delegates to ``x.__ceil__()``, which should return an
Serhiy Storchakabfdcd432013-10-13 23:09:14 +030036 :class:`~numbers.Integral` value.
Christian Heimes072c0f12008-01-03 23:01:04 +000037
38
39.. function:: copysign(x, y)
40
Andrew Kuchling8cb1ec32014-02-16 11:11:25 -050041 Return a float with the magnitude (absolute value) of *x* but the sign of
42 *y*. On platforms that support signed zeros, ``copysign(1.0, -0.0)``
43 returns *-1.0*.
Christian Heimes072c0f12008-01-03 23:01:04 +000044
Georg Brandl116aa622007-08-15 14:28:22 +000045.. function:: fabs(x)
46
47 Return the absolute value of *x*.
48
Georg Brandlc28e1fa2008-06-10 19:20:26 +000049.. function:: factorial(x)
50
Benjamin Petersonfea6a942008-07-02 16:11:42 +000051 Return *x* factorial. Raises :exc:`ValueError` if *x* is not integral or
Georg Brandlc28e1fa2008-06-10 19:20:26 +000052 is negative.
Georg Brandl116aa622007-08-15 14:28:22 +000053
54.. function:: floor(x)
55
Georg Brandl2a033732008-04-05 17:37:09 +000056 Return the floor of *x*, the largest integer less than or equal to *x*.
57 If *x* is not a float, delegates to ``x.__floor__()``, which should return an
Serhiy Storchakabfdcd432013-10-13 23:09:14 +030058 :class:`~numbers.Integral` value.
Georg Brandl116aa622007-08-15 14:28:22 +000059
60
61.. function:: fmod(x, y)
62
63 Return ``fmod(x, y)``, as defined by the platform C library. Note that the
64 Python expression ``x % y`` may not return the same result. The intent of the C
65 standard is that ``fmod(x, y)`` be exactly (mathematically; to infinite
66 precision) equal to ``x - n*y`` for some integer *n* such that the result has
67 the same sign as *x* and magnitude less than ``abs(y)``. Python's ``x % y``
68 returns a result with the sign of *y* instead, and may not be exactly computable
69 for float arguments. For example, ``fmod(-1e-100, 1e100)`` is ``-1e-100``, but
70 the result of Python's ``-1e-100 % 1e100`` is ``1e100-1e-100``, which cannot be
71 represented exactly as a float, and rounds to the surprising ``1e100``. For
72 this reason, function :func:`fmod` is generally preferred when working with
73 floats, while Python's ``x % y`` is preferred when working with integers.
74
75
76.. function:: frexp(x)
77
78 Return the mantissa and exponent of *x* as the pair ``(m, e)``. *m* is a float
79 and *e* is an integer such that ``x == m * 2**e`` exactly. If *x* is zero,
80 returns ``(0.0, 0)``, otherwise ``0.5 <= abs(m) < 1``. This is used to "pick
81 apart" the internal representation of a float in a portable way.
82
83
Mark Dickinsonaa7633a2008-08-01 08:16:13 +000084.. function:: fsum(iterable)
85
86 Return an accurate floating point sum of values in the iterable. Avoids
Raymond Hettingerf3936f82009-02-19 05:48:05 +000087 loss of precision by tracking multiple intermediate partial sums::
Mark Dickinsonaa7633a2008-08-01 08:16:13 +000088
Raymond Hettingerf3936f82009-02-19 05:48:05 +000089 >>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
Mark Dickinson5a55b612009-06-28 20:59:42 +000090 0.9999999999999999
Raymond Hettingerf3936f82009-02-19 05:48:05 +000091 >>> fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
92 1.0
Mark Dickinsonaa7633a2008-08-01 08:16:13 +000093
Raymond Hettingerf3936f82009-02-19 05:48:05 +000094 The algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the
95 typical case where the rounding mode is half-even. On some non-Windows
96 builds, the underlying C library uses extended precision addition and may
97 occasionally double-round an intermediate sum causing it to be off in its
98 least significant bit.
Mark Dickinsonaa7633a2008-08-01 08:16:13 +000099
Raymond Hettinger477be822009-02-19 06:44:30 +0000100 For further discussion and two alternative approaches, see the `ASPN cookbook
101 recipes for accurate floating point summation
Georg Brandl5d941342016-02-26 19:37:12 +0100102 <https://code.activestate.com/recipes/393090/>`_\.
Raymond Hettinger477be822009-02-19 06:44:30 +0000103
Mark Dickinsonaa7633a2008-08-01 08:16:13 +0000104
Serhiy Storchaka48e47aa2015-05-13 00:19:51 +0300105.. function:: gcd(a, b)
106
107 Return the greatest common divisor of the integers *a* and *b*. If either
108 *a* or *b* is nonzero, then the value of ``gcd(a, b)`` is the largest
109 positive integer that divides both *a* and *b*. ``gcd(0, 0)`` returns
110 ``0``.
111
Benjamin Petersone960d182015-05-12 17:24:17 -0400112 .. versionadded:: 3.5
113
Serhiy Storchaka48e47aa2015-05-13 00:19:51 +0300114
Tal Einatd5519ed2015-05-31 22:05:00 +0300115.. function:: isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
116
117 Return ``True`` if the values *a* and *b* are close to each other and
118 ``False`` otherwise.
119
120 Whether or not two values are considered close is determined according to
121 given absolute and relative tolerances.
122
123 *rel_tol* is the relative tolerance -- it is the maximum allowed difference
124 between *a* and *b*, relative to the larger absolute value of *a* or *b*.
125 For example, to set a tolerance of 5%, pass ``rel_tol=0.05``. The default
126 tolerance is ``1e-09``, which assures that the two values are the same
127 within about 9 decimal digits. *rel_tol* must be greater than zero.
128
129 *abs_tol* is the minimum absolute tolerance -- useful for comparisons near
130 zero. *abs_tol* must be at least zero.
131
132 If no errors occur, the result will be:
133 ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``.
134
135 The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be
136 handled according to IEEE rules. Specifically, ``NaN`` is not considered
137 close to any other value, including ``NaN``. ``inf`` and ``-inf`` are only
138 considered close to themselves.
139
140 .. versionadded:: 3.5
141
142 .. seealso::
143
144 :pep:`485` -- A function for testing approximate equality
145
146
Mark Dickinson8e0c9962010-07-11 17:38:24 +0000147.. function:: isfinite(x)
148
149 Return ``True`` if *x* is neither an infinity nor a NaN, and
150 ``False`` otherwise. (Note that ``0.0`` *is* considered finite.)
151
Mark Dickinsonc7622422010-07-11 19:47:37 +0000152 .. versionadded:: 3.2
153
Mark Dickinson8e0c9962010-07-11 17:38:24 +0000154
Christian Heimes072c0f12008-01-03 23:01:04 +0000155.. function:: isinf(x)
156
Mark Dickinsonc7622422010-07-11 19:47:37 +0000157 Return ``True`` if *x* is a positive or negative infinity, and
158 ``False`` otherwise.
Christian Heimes072c0f12008-01-03 23:01:04 +0000159
Christian Heimes072c0f12008-01-03 23:01:04 +0000160
161.. function:: isnan(x)
162
Mark Dickinsonc7622422010-07-11 19:47:37 +0000163 Return ``True`` if *x* is a NaN (not a number), and ``False`` otherwise.
Christian Heimes072c0f12008-01-03 23:01:04 +0000164
Christian Heimes072c0f12008-01-03 23:01:04 +0000165
Georg Brandl116aa622007-08-15 14:28:22 +0000166.. function:: ldexp(x, i)
167
168 Return ``x * (2**i)``. This is essentially the inverse of function
169 :func:`frexp`.
170
171
172.. function:: modf(x)
173
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +0000174 Return the fractional and integer parts of *x*. Both results carry the sign
175 of *x* and are floats.
Georg Brandl116aa622007-08-15 14:28:22 +0000176
Christian Heimes400adb02008-02-01 08:12:03 +0000177
178.. function:: trunc(x)
179
Serhiy Storchakabfdcd432013-10-13 23:09:14 +0300180 Return the :class:`~numbers.Real` value *x* truncated to an
181 :class:`~numbers.Integral` (usually an integer). Delegates to
182 ``x.__trunc__()``.
Christian Heimes400adb02008-02-01 08:12:03 +0000183
Christian Heimes400adb02008-02-01 08:12:03 +0000184
Georg Brandl116aa622007-08-15 14:28:22 +0000185Note that :func:`frexp` and :func:`modf` have a different call/return pattern
186than their C equivalents: they take a single argument and return a pair of
187values, rather than returning their second return value through an 'output
188parameter' (there is no such thing in Python).
189
190For the :func:`ceil`, :func:`floor`, and :func:`modf` functions, note that *all*
191floating-point numbers of sufficiently large magnitude are exact integers.
192Python floats typically carry no more than 53 bits of precision (the same as the
193platform C double type), in which case any float *x* with ``abs(x) >= 2**52``
194necessarily has no fractional bits.
195
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +0000196
197Power and logarithmic functions
198-------------------------------
Georg Brandl116aa622007-08-15 14:28:22 +0000199
Georg Brandl116aa622007-08-15 14:28:22 +0000200.. function:: exp(x)
201
202 Return ``e**x``.
203
204
Mark Dickinson664b5112009-12-16 20:23:42 +0000205.. function:: expm1(x)
206
Raymond Hettinger1081d482011-03-31 12:04:53 -0700207 Return ``e**x - 1``. For small floats *x*, the subtraction in ``exp(x) - 1``
208 can result in a `significant loss of precision
Georg Brandl5d941342016-02-26 19:37:12 +0100209 <https://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1`
Raymond Hettinger1081d482011-03-31 12:04:53 -0700210 function provides a way to compute this quantity to full precision::
Mark Dickinson664b5112009-12-16 20:23:42 +0000211
212 >>> from math import exp, expm1
213 >>> exp(1e-5) - 1 # gives result accurate to 11 places
214 1.0000050000069649e-05
215 >>> expm1(1e-5) # result accurate to full precision
216 1.0000050000166668e-05
217
Mark Dickinson45f992a2009-12-19 11:20:49 +0000218 .. versionadded:: 3.2
219
Mark Dickinson664b5112009-12-16 20:23:42 +0000220
Georg Brandl116aa622007-08-15 14:28:22 +0000221.. function:: log(x[, base])
222
Georg Brandla6053b42009-09-01 08:11:14 +0000223 With one argument, return the natural logarithm of *x* (to base *e*).
224
225 With two arguments, return the logarithm of *x* to the given *base*,
226 calculated as ``log(x)/log(base)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000227
Georg Brandl116aa622007-08-15 14:28:22 +0000228
Christian Heimes53876d92008-04-19 00:31:39 +0000229.. function:: log1p(x)
230
231 Return the natural logarithm of *1+x* (base *e*). The
232 result is calculated in a way which is accurate for *x* near zero.
233
Christian Heimes53876d92008-04-19 00:31:39 +0000234
Victor Stinnerfa0e3d52011-05-09 01:01:09 +0200235.. function:: log2(x)
236
Benjamin Petersoneaee1382011-05-08 19:48:08 -0500237 Return the base-2 logarithm of *x*. This is usually more accurate than
238 ``log(x, 2)``.
Victor Stinnerfa0e3d52011-05-09 01:01:09 +0200239
240 .. versionadded:: 3.3
241
Victor Stinner9415afc2011-09-21 03:35:18 +0200242 .. seealso::
243
244 :meth:`int.bit_length` returns the number of bits necessary to represent
245 an integer in binary, excluding the sign and leading zeros.
246
Victor Stinnerfa0e3d52011-05-09 01:01:09 +0200247
Georg Brandl116aa622007-08-15 14:28:22 +0000248.. function:: log10(x)
249
Georg Brandla6053b42009-09-01 08:11:14 +0000250 Return the base-10 logarithm of *x*. This is usually more accurate
251 than ``log(x, 10)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000252
253
254.. function:: pow(x, y)
255
Christian Heimesa342c012008-04-20 21:01:16 +0000256 Return ``x`` raised to the power ``y``. Exceptional cases follow
257 Annex 'F' of the C99 standard as far as possible. In particular,
258 ``pow(1.0, x)`` and ``pow(x, 0.0)`` always return ``1.0``, even
259 when ``x`` is a zero or a NaN. If both ``x`` and ``y`` are finite,
260 ``x`` is negative, and ``y`` is not an integer then ``pow(x, y)``
261 is undefined, and raises :exc:`ValueError`.
Christian Heimes53876d92008-04-19 00:31:39 +0000262
Ezio Melotti739d5492013-02-23 04:53:44 +0200263 Unlike the built-in ``**`` operator, :func:`math.pow` converts both
264 its arguments to type :class:`float`. Use ``**`` or the built-in
265 :func:`pow` function for computing exact integer powers.
266
Georg Brandl116aa622007-08-15 14:28:22 +0000267
268.. function:: sqrt(x)
269
270 Return the square root of *x*.
271
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +0000272Trigonometric functions
273-----------------------
Georg Brandl116aa622007-08-15 14:28:22 +0000274
275
276.. function:: acos(x)
277
278 Return the arc cosine of *x*, in radians.
279
280
281.. function:: asin(x)
282
283 Return the arc sine of *x*, in radians.
284
285
286.. function:: atan(x)
287
288 Return the arc tangent of *x*, in radians.
289
290
291.. function:: atan2(y, x)
292
293 Return ``atan(y / x)``, in radians. The result is between ``-pi`` and ``pi``.
294 The vector in the plane from the origin to point ``(x, y)`` makes this angle
295 with the positive X axis. The point of :func:`atan2` is that the signs of both
296 inputs are known to it, so it can compute the correct quadrant for the angle.
Mark Dickinson603b7532010-04-06 19:55:03 +0000297 For example, ``atan(1)`` and ``atan2(1, 1)`` are both ``pi/4``, but ``atan2(-1,
Georg Brandl116aa622007-08-15 14:28:22 +0000298 -1)`` is ``-3*pi/4``.
299
300
301.. function:: cos(x)
302
303 Return the cosine of *x* radians.
304
305
306.. function:: hypot(x, y)
307
308 Return the Euclidean norm, ``sqrt(x*x + y*y)``. This is the length of the vector
309 from the origin to point ``(x, y)``.
310
311
312.. function:: sin(x)
313
314 Return the sine of *x* radians.
315
316
317.. function:: tan(x)
318
319 Return the tangent of *x* radians.
320
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +0000321Angular conversion
322------------------
Georg Brandl116aa622007-08-15 14:28:22 +0000323
324
325.. function:: degrees(x)
326
Benjamin Peterson19a3f172015-05-12 19:15:53 -0400327 Convert angle *x* from radians to degrees.
Georg Brandl116aa622007-08-15 14:28:22 +0000328
329
330.. function:: radians(x)
331
Benjamin Peterson19a3f172015-05-12 19:15:53 -0400332 Convert angle *x* from degrees to radians.
Georg Brandl116aa622007-08-15 14:28:22 +0000333
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +0000334Hyperbolic functions
335--------------------
Georg Brandl116aa622007-08-15 14:28:22 +0000336
Georg Brandl5d941342016-02-26 19:37:12 +0100337`Hyperbolic functions <https://en.wikipedia.org/wiki/Hyperbolic_function>`_
Raymond Hettinger1081d482011-03-31 12:04:53 -0700338are analogs of trigonometric functions that are based on hyperbolas
339instead of circles.
Georg Brandl116aa622007-08-15 14:28:22 +0000340
Christian Heimesa342c012008-04-20 21:01:16 +0000341.. function:: acosh(x)
342
343 Return the inverse hyperbolic cosine of *x*.
344
Christian Heimesa342c012008-04-20 21:01:16 +0000345
346.. function:: asinh(x)
347
348 Return the inverse hyperbolic sine of *x*.
349
Christian Heimesa342c012008-04-20 21:01:16 +0000350
351.. function:: atanh(x)
352
353 Return the inverse hyperbolic tangent of *x*.
354
Christian Heimesa342c012008-04-20 21:01:16 +0000355
Georg Brandl116aa622007-08-15 14:28:22 +0000356.. function:: cosh(x)
357
358 Return the hyperbolic cosine of *x*.
359
360
361.. function:: sinh(x)
362
363 Return the hyperbolic sine of *x*.
364
365
366.. function:: tanh(x)
367
368 Return the hyperbolic tangent of *x*.
369
Christian Heimes53876d92008-04-19 00:31:39 +0000370
Mark Dickinson12c4bdb2009-09-28 19:21:11 +0000371Special functions
372-----------------
373
Mark Dickinson45f992a2009-12-19 11:20:49 +0000374.. function:: erf(x)
375
Georg Brandl5d941342016-02-26 19:37:12 +0100376 Return the `error function <https://en.wikipedia.org/wiki/Error_function>`_ at
Raymond Hettinger1081d482011-03-31 12:04:53 -0700377 *x*.
378
379 The :func:`erf` function can be used to compute traditional statistical
380 functions such as the `cumulative standard normal distribution
Georg Brandl5d941342016-02-26 19:37:12 +0100381 <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_::
Raymond Hettinger1081d482011-03-31 12:04:53 -0700382
383 def phi(x):
384 'Cumulative distribution function for the standard normal distribution'
385 return (1.0 + erf(x / sqrt(2.0))) / 2.0
Mark Dickinson45f992a2009-12-19 11:20:49 +0000386
387 .. versionadded:: 3.2
388
389
390.. function:: erfc(x)
391
Raymond Hettinger1081d482011-03-31 12:04:53 -0700392 Return the complementary error function at *x*. The `complementary error
Georg Brandl5d941342016-02-26 19:37:12 +0100393 function <https://en.wikipedia.org/wiki/Error_function>`_ is defined as
Raymond Hettinger12e6c252011-03-31 13:59:24 -0700394 ``1.0 - erf(x)``. It is used for large values of *x* where a subtraction
395 from one would cause a `loss of significance
Georg Brandl5d941342016-02-26 19:37:12 +0100396 <https://en.wikipedia.org/wiki/Loss_of_significance>`_\.
Mark Dickinson45f992a2009-12-19 11:20:49 +0000397
398 .. versionadded:: 3.2
399
400
Mark Dickinson12c4bdb2009-09-28 19:21:11 +0000401.. function:: gamma(x)
402
Georg Brandl5d941342016-02-26 19:37:12 +0100403 Return the `Gamma function <https://en.wikipedia.org/wiki/Gamma_function>`_ at
Raymond Hettinger12e6c252011-03-31 13:59:24 -0700404 *x*.
Mark Dickinson12c4bdb2009-09-28 19:21:11 +0000405
Mark Dickinson56e09662009-10-01 16:13:29 +0000406 .. versionadded:: 3.2
Mark Dickinson12c4bdb2009-09-28 19:21:11 +0000407
408
Mark Dickinson05d2e082009-12-11 20:17:17 +0000409.. function:: lgamma(x)
410
411 Return the natural logarithm of the absolute value of the Gamma
412 function at *x*.
413
Mark Dickinson45f992a2009-12-19 11:20:49 +0000414 .. versionadded:: 3.2
Mark Dickinson05d2e082009-12-11 20:17:17 +0000415
416
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +0000417Constants
Mark Dickinson60fe6b02009-06-02 12:53:15 +0000418---------
Georg Brandl116aa622007-08-15 14:28:22 +0000419
420.. data:: pi
421
Mark Dickinson603b7532010-04-06 19:55:03 +0000422 The mathematical constant π = 3.141592..., to available precision.
Georg Brandl116aa622007-08-15 14:28:22 +0000423
424
425.. data:: e
426
Mark Dickinson603b7532010-04-06 19:55:03 +0000427 The mathematical constant e = 2.718281..., to available precision.
Georg Brandl116aa622007-08-15 14:28:22 +0000428
Guido van Rossum0a891d72016-08-15 09:12:52 -0700429.. data:: tau
430
431 The mathematical constant τ = 6.283185..., to available precision.
432 Tau is a circle constant equal to 2π, the ratio of a circle's circumference to
433 its radius. To learn more about Tau, check out Vi Hart's video `Pi is (still)
434 Wrong <https://www.youtube.com/watch?v=jG7vhMMXagQ>`_, and start celebrating
435 `Tau day <http://tauday.com/>`_ by eating twice as much pie!
Christian Heimes53876d92008-04-19 00:31:39 +0000436
Georg Brandl4770d6e2016-08-16 07:08:46 +0200437 .. versionadded:: 3.6
438
Mark Dickinsona5d0c7c2015-01-11 11:55:29 +0000439.. data:: inf
440
441 A floating-point positive infinity. (For negative infinity, use
442 ``-math.inf``.) Equivalent to the output of ``float('inf')``.
443
444 .. versionadded:: 3.5
445
446
447.. data:: nan
448
449 A floating-point "not a number" (NaN) value. Equivalent to the output of
450 ``float('nan')``.
451
452 .. versionadded:: 3.5
453
454
Georg Brandl495f7b52009-10-27 15:28:25 +0000455.. impl-detail::
Georg Brandl116aa622007-08-15 14:28:22 +0000456
457 The :mod:`math` module consists mostly of thin wrappers around the platform C
Mark Dickinson603b7532010-04-06 19:55:03 +0000458 math library functions. Behavior in exceptional cases follows Annex F of
459 the C99 standard where appropriate. The current implementation will raise
460 :exc:`ValueError` for invalid operations like ``sqrt(-1.0)`` or ``log(0.0)``
461 (where C99 Annex F recommends signaling invalid operation or divide-by-zero),
462 and :exc:`OverflowError` for results that overflow (for example,
Benjamin Peterson08bf91c2010-04-11 16:12:57 +0000463 ``exp(1000.0)``). A NaN will not be returned from any of the functions
464 above unless one or more of the input arguments was a NaN; in that case,
465 most functions will return a NaN, but (again following C99 Annex F) there
Mark Dickinson603b7532010-04-06 19:55:03 +0000466 are some exceptions to this rule, for example ``pow(float('nan'), 0.0)`` or
467 ``hypot(float('nan'), float('inf'))``.
Georg Brandl116aa622007-08-15 14:28:22 +0000468
Mark Dickinson42dfeec2010-04-06 22:13:37 +0000469 Note that Python makes no effort to distinguish signaling NaNs from
470 quiet NaNs, and behavior for signaling NaNs remains unspecified.
471 Typical behavior is to treat all NaNs as though they were quiet.
Christian Heimes53876d92008-04-19 00:31:39 +0000472
Georg Brandl116aa622007-08-15 14:28:22 +0000473
474.. seealso::
475
476 Module :mod:`cmath`
477 Complex number versions of many of these functions.