summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2008-04-19 20:31:16 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2008-04-19 20:31:16 (GMT)
commit53bd2e1a036419083bf311621db14dee0f367100 (patch)
tree3960dbf71541a04001cd549dfb59e2ee4b22271d
parenta7d09031a0d8d9e9a73d88332b3dd2c95050dd39 (diff)
downloadcpython-53bd2e1a036419083bf311621db14dee0f367100.zip
cpython-53bd2e1a036419083bf311621db14dee0f367100.tar.gz
cpython-53bd2e1a036419083bf311621db14dee0f367100.tar.bz2
Document updates to math and cmath modules.
-rw-r--r--Doc/whatsnew/2.6.rst51
1 files changed, 51 insertions, 0 deletions
diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst
index 74a331a..144d058 100644
--- a/Doc/whatsnew/2.6.rst
+++ b/Doc/whatsnew/2.6.rst
@@ -1415,6 +1415,33 @@ complete list of changes, or look through the CVS logs for all the details.
available, instead of restricting itself to protocol 1.
(Contributed by W. Barnes; :issue:`1551443`.)
+* The :mod:`cmath` module has gained five new functions: :func:`polar`
+ converts a complex number to polar form, returning the modulus and
+ argument of that complex number. :func:`rect` does the opposite,
+ turning a (modulus, argument) pair back into the corresponding
+ complex number. :func:`phase` returns the phase or argument of a
+ complex number. :func:`isnan` returns True if either the real or
+ imaginary part of its argument is a NaN. :func:`isinf` returns True
+ if either the real or imaginary part of its argument is infinite.
+
+ The :mod:`cmath` module is no longer numerically unsound. (See
+ :issue:`1381`): for all functions, the real and imaginary parts of
+ the results are accurate to within a few ulps, whenever possible.
+
+ The branch cuts for :func:`asinh`, :func:`atanh`: and :func:`atan`
+ have been corrected.
+
+ The tests for the :mod:`cmath` module have been greatly expanded. A
+ set of nearly 2000 new testcases provides tests for the algebraic
+ functions.
+
+ On IEEE 754 platforms, the :mod:`cmath` module now handles IEEE 754
+ special values and floating-point exceptions in a manner consistent
+ with Annex 'G' of the C99 standard.
+
+ (Updates to :mod:`cmath` contributed by Mark Dickinson and Christian
+ Heimes.)
+
* A new data type in the :mod:`collections` module: :class:`namedtuple(typename,
fieldnames)` is a factory function that creates subclasses of the standard tuple
whose fields are accessible by name as well as index. For example::
@@ -1651,6 +1678,30 @@ complete list of changes, or look through the CVS logs for all the details.
:func:`macostools.touched` function to be removed because it depended on the
:mod:`macfs` module. (:issue:`1490190`)
+* The :mod:`math` module has seven new functions, and the existing
+ functions have been improved to give more consistent behaviour
+ across platforms, especially with respect to handling of
+ floating-point exceptions and IEEE 754 special values.
+
+ The new functions are: :func:`isinf` and :func:`isnan`, which
+ determine whether a given float is a (positive or negative) infinity
+ or a NaN (Not a Number), respectively; :func:`copysign`; the inverse
+ hyperbolic functions :func:`acosh`, :func:`asinh` and :func:`atanh`;
+ and the function :func:`log1p`. (There's also a new function
+ :func:`trunc` as a result of the backport of PEP 3141; see above.)
+
+ The existing math functions have been modified to follow the
+ recommendations of the C99 standard with respect to special values
+ whenever possible. For example, sqrt(-1.) should now give a
+ ValueError across (nearly) all platforms, while sqrt(float('NaN'))
+ should return a NaN on all IEEE 754 platforms. Where Annex 'F' of
+ the C99 standard recommends signaling 'divide-by-zero' or 'invalid',
+ Python will raise ValueError. Where Annex 'F' of the C99 standard
+ recommends signaling 'overflow', Python will raise OverflowError.
+ (See :issue:`711019`, :issue:`1640`.)
+
+ (Contributed by Christian Heimes and Mark Dickinson.)
+
* :class:`mmap` objects now have a :meth:`rfind` method that finds
a substring, beginning at the end of the string and searching
backwards. The :meth:`find` method