summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-04-16 19:52:09 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-04-16 19:52:09 (GMT)
commitb08a53a99def3fa949643974f713b5b189e21bc7 (patch)
tree6f7663d510099fd7acfa328ae5a5c88e3eddb1a7 /Doc
parent579b65c2d695eb468fb97568ff7d2ad9d261b2b3 (diff)
downloadcpython-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.rst13
-rw-r--r--Doc/license.rst32
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.
+ *
+ ***************************************************************/
+
+