diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-04-16 19:52:09 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-04-16 19:52:09 (GMT) |
commit | b08a53a99def3fa949643974f713b5b189e21bc7 (patch) | |
tree | 6f7663d510099fd7acfa328ae5a5c88e3eddb1a7 /Doc | |
parent | 579b65c2d695eb468fb97568ff7d2ad9d261b2b3 (diff) | |
download | cpython-b08a53a99def3fa949643974f713b5b189e21bc7.zip cpython-b08a53a99def3fa949643974f713b5b189e21bc7.tar.gz cpython-b08a53a99def3fa949643974f713b5b189e21bc7.tar.bz2 |
Issue #1580: use short float repr where possible.
- incorporate and adapt David Gay's dtoa and strtod
into the Python core
- on platforms where we can use Gay's code (almost
all!), repr(float) is based on the shortest
sequence of decimal digits that rounds correctly.
- add sys.float_repr_style attribute to indicate
whether we're using Gay's code or not
- add autoconf magic to detect and enable SSE2
instructions on x86/gcc
- slight change to repr and str: repr switches
to exponential notation at 1e16 instead of
1e17, str switches at 1e11 instead of 1e12
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/sys.rst | 13 | ||||
-rw-r--r-- | Doc/license.rst | 32 |
2 files changed, 45 insertions, 0 deletions
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 4928d13..51c85d4 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -266,6 +266,19 @@ always available. The information in the table is simplified. +.. data:: float_repr_style + + A string indicating how the :func:`repr` function behaves for + floats. If the string has value ``'short'`` then for a finite + float ``x``, ``repr(x)`` aims to produce a short string with the + property that ``float(repr(x)) == x``. This is the usual behaviour + in Python 3.1 and later. Otherwise, ``float_repr_style`` has value + ``'legacy'`` and ``repr(x)`` behaves in the same way as it did in + versions of Python prior to 3.1. + + .. versionadded:: 3.1 + + .. function:: getcheckinterval() Return the interpreter's "check interval"; see :func:`setcheckinterval`. diff --git a/Doc/license.rst b/Doc/license.rst index 7ae9f56..eb266a7 100644 --- a/Doc/license.rst +++ b/Doc/license.rst @@ -657,3 +657,35 @@ The :mod:`select` and contains the following notice for the kqueue interface:: LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +strtod and dtoa +--------------- + +The file :file:`Python/dtoa.c`, which supplies C functions dtoa and +strtod for conversion of C doubles to and from strings, is derived +from the file of the same name by David M. Gay, currently available +from http://www.netlib.org/fp/. The original file, as retrieved on +March 16, 2009, contains the following copyright and licensing +notice:: + + /**************************************************************** + * + * The author of this software is David M. Gay. + * + * Copyright (c) 1991, 2000, 2001 by Lucent Technologies. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + * + ***************************************************************/ + + |