mirror of https://github.com/python/cpython
gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907)
This commit is contained in:
parent
420d943128
commit
1a0c7b9ba4
|
@ -280,10 +280,10 @@ Numbers
|
||||||
length 1, to a C :c:expr:`int`.
|
length 1, to a C :c:expr:`int`.
|
||||||
|
|
||||||
``f`` (:class:`float`) [float]
|
``f`` (:class:`float`) [float]
|
||||||
Convert a Python floating point number to a C :c:expr:`float`.
|
Convert a Python floating-point number to a C :c:expr:`float`.
|
||||||
|
|
||||||
``d`` (:class:`float`) [double]
|
``d`` (:class:`float`) [double]
|
||||||
Convert a Python floating point number to a C :c:expr:`double`.
|
Convert a Python floating-point number to a C :c:expr:`double`.
|
||||||
|
|
||||||
``D`` (:class:`complex`) [Py_complex]
|
``D`` (:class:`complex`) [Py_complex]
|
||||||
Convert a Python complex number to a C :c:type:`Py_complex` structure.
|
Convert a Python complex number to a C :c:type:`Py_complex` structure.
|
||||||
|
@ -642,10 +642,10 @@ Building values
|
||||||
object of length 1.
|
object of length 1.
|
||||||
|
|
||||||
``d`` (:class:`float`) [double]
|
``d`` (:class:`float`) [double]
|
||||||
Convert a C :c:expr:`double` to a Python floating point number.
|
Convert a C :c:expr:`double` to a Python floating-point number.
|
||||||
|
|
||||||
``f`` (:class:`float`) [float]
|
``f`` (:class:`float`) [float]
|
||||||
Convert a C :c:expr:`float` to a Python floating point number.
|
Convert a C :c:expr:`float` to a Python floating-point number.
|
||||||
|
|
||||||
``D`` (:class:`complex`) [Py_complex \*]
|
``D`` (:class:`complex`) [Py_complex \*]
|
||||||
Convert a C :c:type:`Py_complex` structure to a Python complex number.
|
Convert a C :c:type:`Py_complex` structure to a Python complex number.
|
||||||
|
|
|
@ -2,20 +2,20 @@
|
||||||
|
|
||||||
.. _floatobjects:
|
.. _floatobjects:
|
||||||
|
|
||||||
Floating Point Objects
|
Floating-Point Objects
|
||||||
======================
|
======================
|
||||||
|
|
||||||
.. index:: pair: object; floating point
|
.. index:: pair: object; floating-point
|
||||||
|
|
||||||
|
|
||||||
.. c:type:: PyFloatObject
|
.. c:type:: PyFloatObject
|
||||||
|
|
||||||
This subtype of :c:type:`PyObject` represents a Python floating point object.
|
This subtype of :c:type:`PyObject` represents a Python floating-point object.
|
||||||
|
|
||||||
|
|
||||||
.. c:var:: PyTypeObject PyFloat_Type
|
.. c:var:: PyTypeObject PyFloat_Type
|
||||||
|
|
||||||
This instance of :c:type:`PyTypeObject` represents the Python floating point
|
This instance of :c:type:`PyTypeObject` represents the Python floating-point
|
||||||
type. This is the same object as :class:`float` in the Python layer.
|
type. This is the same object as :class:`float` in the Python layer.
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ Floating Point Objects
|
||||||
.. c:function:: double PyFloat_AsDouble(PyObject *pyfloat)
|
.. c:function:: double PyFloat_AsDouble(PyObject *pyfloat)
|
||||||
|
|
||||||
Return a C :c:expr:`double` representation of the contents of *pyfloat*. If
|
Return a C :c:expr:`double` representation of the contents of *pyfloat*. If
|
||||||
*pyfloat* is not a Python floating point object but has a :meth:`~object.__float__`
|
*pyfloat* is not a Python floating-point object but has a :meth:`~object.__float__`
|
||||||
method, this method will first be called to convert *pyfloat* into a float.
|
method, this method will first be called to convert *pyfloat* into a float.
|
||||||
If :meth:`!__float__` is not defined then it falls back to :meth:`~object.__index__`.
|
If :meth:`!__float__` is not defined then it falls back to :meth:`~object.__index__`.
|
||||||
This method returns ``-1.0`` upon failure, so one should call
|
This method returns ``-1.0`` upon failure, so one should call
|
||||||
|
|
|
@ -15,7 +15,7 @@ Numeric values are stored with the least significant byte first.
|
||||||
|
|
||||||
The module supports two versions of the data format: version 0 is the
|
The module supports two versions of the data format: version 0 is the
|
||||||
historical version, version 1 shares interned strings in the file, and upon
|
historical version, version 1 shares interned strings in the file, and upon
|
||||||
unmarshalling. Version 2 uses a binary format for floating point numbers.
|
unmarshalling. Version 2 uses a binary format for floating-point numbers.
|
||||||
``Py_MARSHAL_VERSION`` indicates the current file format (currently 2).
|
``Py_MARSHAL_VERSION`` indicates the current file format (currently 2).
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,8 @@ Number Protocol
|
||||||
|
|
||||||
Return a reasonable approximation for the mathematical value of *o1* divided by
|
Return a reasonable approximation for the mathematical value of *o1* divided by
|
||||||
*o2*, or ``NULL`` on failure. The return value is "approximate" because binary
|
*o2*, or ``NULL`` on failure. The return value is "approximate" because binary
|
||||||
floating point numbers are approximate; it is not possible to represent all real
|
floating-point numbers are approximate; it is not possible to represent all real
|
||||||
numbers in base two. This function can return a floating point value when
|
numbers in base two. This function can return a floating-point value when
|
||||||
passed two integers. This is the equivalent of the Python expression ``o1 / o2``.
|
passed two integers. This is the equivalent of the Python expression ``o1 / o2``.
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,8 +177,8 @@ Number Protocol
|
||||||
|
|
||||||
Return a reasonable approximation for the mathematical value of *o1* divided by
|
Return a reasonable approximation for the mathematical value of *o1* divided by
|
||||||
*o2*, or ``NULL`` on failure. The return value is "approximate" because binary
|
*o2*, or ``NULL`` on failure. The return value is "approximate" because binary
|
||||||
floating point numbers are approximate; it is not possible to represent all real
|
floating-point numbers are approximate; it is not possible to represent all real
|
||||||
numbers in base two. This function can return a floating point value when
|
numbers in base two. This function can return a floating-point value when
|
||||||
passed two integers. The operation is done *in-place* when *o1* supports it.
|
passed two integers. The operation is done *in-place* when *o1* supports it.
|
||||||
This is the equivalent of the Python statement ``o1 /= o2``.
|
This is the equivalent of the Python statement ``o1 /= o2``.
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ operations. This means that as far as floating-point operations are concerned,
|
||||||
Python behaves like many popular languages including C and Java.
|
Python behaves like many popular languages including C and Java.
|
||||||
|
|
||||||
Many numbers that can be written easily in decimal notation cannot be expressed
|
Many numbers that can be written easily in decimal notation cannot be expressed
|
||||||
exactly in binary floating-point. For example, after::
|
exactly in binary floating point. For example, after::
|
||||||
|
|
||||||
>>> x = 1.2
|
>>> x = 1.2
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ which is exactly::
|
||||||
The typical precision of 53 bits provides Python floats with 15--16
|
The typical precision of 53 bits provides Python floats with 15--16
|
||||||
decimal digits of accuracy.
|
decimal digits of accuracy.
|
||||||
|
|
||||||
For a fuller explanation, please see the :ref:`floating point arithmetic
|
For a fuller explanation, please see the :ref:`floating-point arithmetic
|
||||||
<tut-fp-issues>` chapter in the Python tutorial.
|
<tut-fp-issues>` chapter in the Python tutorial.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -718,12 +718,12 @@ is simple::
|
||||||
import random
|
import random
|
||||||
random.random()
|
random.random()
|
||||||
|
|
||||||
This returns a random floating point number in the range [0, 1).
|
This returns a random floating-point number in the range [0, 1).
|
||||||
|
|
||||||
There are also many other specialized generators in this module, such as:
|
There are also many other specialized generators in this module, such as:
|
||||||
|
|
||||||
* ``randrange(a, b)`` chooses an integer in the range [a, b).
|
* ``randrange(a, b)`` chooses an integer in the range [a, b).
|
||||||
* ``uniform(a, b)`` chooses a floating point number in the range [a, b).
|
* ``uniform(a, b)`` chooses a floating-point number in the range [a, b).
|
||||||
* ``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution.
|
* ``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution.
|
||||||
|
|
||||||
Some higher-level functions operate on sequences directly, such as:
|
Some higher-level functions operate on sequences directly, such as:
|
||||||
|
|
|
@ -869,7 +869,7 @@ How do I convert a string to a number?
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
For integers, use the built-in :func:`int` type constructor, e.g. ``int('144')
|
For integers, use the built-in :func:`int` type constructor, e.g. ``int('144')
|
||||||
== 144``. Similarly, :func:`float` converts to floating-point,
|
== 144``. Similarly, :func:`float` converts to a floating-point number,
|
||||||
e.g. ``float('144') == 144.0``.
|
e.g. ``float('144') == 144.0``.
|
||||||
|
|
||||||
By default, these interpret the number as decimal, so that ``int('0144') ==
|
By default, these interpret the number as decimal, so that ``int('0144') ==
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
This module defines an object type which can compactly represent an array of
|
This module defines an object type which can compactly represent an array of
|
||||||
basic values: characters, integers, floating point numbers. Arrays are sequence
|
basic values: characters, integers, floating-point numbers. Arrays are sequence
|
||||||
types and behave very much like lists, except that the type of objects stored in
|
types and behave very much like lists, except that the type of objects stored in
|
||||||
them is constrained. The type is specified at object creation time by using a
|
them is constrained. The type is specified at object creation time by using a
|
||||||
:dfn:`type code`, which is a single character. The following type codes are
|
:dfn:`type code`, which is a single character. The following type codes are
|
||||||
|
@ -263,7 +263,7 @@ The string representation is guaranteed to be able to be converted back to an
|
||||||
array with the same type and value using :func:`eval`, so long as the
|
array with the same type and value using :func:`eval`, so long as the
|
||||||
:class:`~array.array` class has been imported using ``from array import array``.
|
:class:`~array.array` class has been imported using ``from array import array``.
|
||||||
Variables ``inf`` and ``nan`` must also be defined if it contains
|
Variables ``inf`` and ``nan`` must also be defined if it contains
|
||||||
corresponding floating point values.
|
corresponding floating-point values.
|
||||||
Examples::
|
Examples::
|
||||||
|
|
||||||
array('l')
|
array('l')
|
||||||
|
|
|
@ -14,7 +14,7 @@ The :mod:`colorsys` module defines bidirectional conversions of color values
|
||||||
between colors expressed in the RGB (Red Green Blue) color space used in
|
between colors expressed in the RGB (Red Green Blue) color space used in
|
||||||
computer monitors and three other coordinate systems: YIQ, HLS (Hue Lightness
|
computer monitors and three other coordinate systems: YIQ, HLS (Hue Lightness
|
||||||
Saturation) and HSV (Hue Saturation Value). Coordinates in all of these color
|
Saturation) and HSV (Hue Saturation Value). Coordinates in all of these color
|
||||||
spaces are floating point values. In the YIQ space, the Y coordinate is between
|
spaces are floating-point values. In the YIQ space, the Y coordinate is between
|
||||||
0 and 1, but the I and Q coordinates can be positive or negative. In all other
|
0 and 1, but the I and Q coordinates can be positive or negative. In all other
|
||||||
spaces, the coordinates are all between 0 and 1.
|
spaces, the coordinates are all between 0 and 1.
|
||||||
|
|
||||||
|
|
|
@ -1183,7 +1183,7 @@ ConfigParser Objects
|
||||||
.. method:: getfloat(section, option, *, raw=False, vars=None[, fallback])
|
.. method:: getfloat(section, option, *, raw=False, vars=None[, fallback])
|
||||||
|
|
||||||
A convenience method which coerces the *option* in the specified *section*
|
A convenience method which coerces the *option* in the specified *section*
|
||||||
to a floating point number. See :meth:`get` for explanation of *raw*,
|
to a floating-point number. See :meth:`get` for explanation of *raw*,
|
||||||
*vars* and *fallback*.
|
*vars* and *fallback*.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
:mod:`!decimal` --- Decimal fixed point and floating point arithmetic
|
:mod:`!decimal` --- Decimal fixed-point and floating-point arithmetic
|
||||||
=====================================================================
|
=====================================================================
|
||||||
|
|
||||||
.. module:: decimal
|
.. module:: decimal
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
The :mod:`decimal` module provides support for fast correctly rounded
|
The :mod:`decimal` module provides support for fast correctly rounded
|
||||||
decimal floating point arithmetic. It offers several advantages over the
|
decimal floating-point arithmetic. It offers several advantages over the
|
||||||
:class:`float` datatype:
|
:class:`float` datatype:
|
||||||
|
|
||||||
* Decimal "is based on a floating-point model which was designed with people
|
* Decimal "is based on a floating-point model which was designed with people
|
||||||
|
@ -207,7 +207,7 @@ a decimal raises :class:`InvalidOperation`::
|
||||||
.. versionchanged:: 3.3
|
.. versionchanged:: 3.3
|
||||||
|
|
||||||
Decimals interact well with much of the rest of Python. Here is a small decimal
|
Decimals interact well with much of the rest of Python. Here is a small decimal
|
||||||
floating point flying circus:
|
floating-point flying circus:
|
||||||
|
|
||||||
.. doctest::
|
.. doctest::
|
||||||
:options: +NORMALIZE_WHITESPACE
|
:options: +NORMALIZE_WHITESPACE
|
||||||
|
@ -373,7 +373,7 @@ Decimal objects
|
||||||
digits, and an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), -3))``
|
digits, and an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), -3))``
|
||||||
returns ``Decimal('1.414')``.
|
returns ``Decimal('1.414')``.
|
||||||
|
|
||||||
If *value* is a :class:`float`, the binary floating point value is losslessly
|
If *value* is a :class:`float`, the binary floating-point value is losslessly
|
||||||
converted to its exact decimal equivalent. This conversion can often require
|
converted to its exact decimal equivalent. This conversion can often require
|
||||||
53 or more digits of precision. For example, ``Decimal(float('1.1'))``
|
53 or more digits of precision. For example, ``Decimal(float('1.1'))``
|
||||||
converts to
|
converts to
|
||||||
|
@ -403,7 +403,7 @@ Decimal objects
|
||||||
Underscores are allowed for grouping, as with integral and floating-point
|
Underscores are allowed for grouping, as with integral and floating-point
|
||||||
literals in code.
|
literals in code.
|
||||||
|
|
||||||
Decimal floating point objects share many properties with the other built-in
|
Decimal floating-point objects share many properties with the other built-in
|
||||||
numeric types such as :class:`float` and :class:`int`. All of the usual math
|
numeric types such as :class:`float` and :class:`int`. All of the usual math
|
||||||
operations and special methods apply. Likewise, decimal objects can be
|
operations and special methods apply. Likewise, decimal objects can be
|
||||||
copied, pickled, printed, used as dictionary keys, used as set elements,
|
copied, pickled, printed, used as dictionary keys, used as set elements,
|
||||||
|
@ -445,7 +445,7 @@ Decimal objects
|
||||||
Mixed-type comparisons between :class:`Decimal` instances and other
|
Mixed-type comparisons between :class:`Decimal` instances and other
|
||||||
numeric types are now fully supported.
|
numeric types are now fully supported.
|
||||||
|
|
||||||
In addition to the standard numeric properties, decimal floating point
|
In addition to the standard numeric properties, decimal floating-point
|
||||||
objects also have a number of specialized methods:
|
objects also have a number of specialized methods:
|
||||||
|
|
||||||
|
|
||||||
|
@ -1741,7 +1741,7 @@ The following table summarizes the hierarchy of signals::
|
||||||
|
|
||||||
.. _decimal-notes:
|
.. _decimal-notes:
|
||||||
|
|
||||||
Floating Point Notes
|
Floating-Point Notes
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -1754,7 +1754,7 @@ can still incur round-off error when non-zero digits exceed the fixed precision.
|
||||||
|
|
||||||
The effects of round-off error can be amplified by the addition or subtraction
|
The effects of round-off error can be amplified by the addition or subtraction
|
||||||
of nearly offsetting quantities resulting in loss of significance. Knuth
|
of nearly offsetting quantities resulting in loss of significance. Knuth
|
||||||
provides two instructive examples where rounded floating point arithmetic with
|
provides two instructive examples where rounded floating-point arithmetic with
|
||||||
insufficient precision causes the breakdown of the associative and distributive
|
insufficient precision causes the breakdown of the associative and distributive
|
||||||
properties of addition:
|
properties of addition:
|
||||||
|
|
||||||
|
@ -1844,7 +1844,7 @@ treated as equal and their sign is informational.
|
||||||
In addition to the two signed zeros which are distinct yet equal, there are
|
In addition to the two signed zeros which are distinct yet equal, there are
|
||||||
various representations of zero with differing precisions yet equivalent in
|
various representations of zero with differing precisions yet equivalent in
|
||||||
value. This takes a bit of getting used to. For an eye accustomed to
|
value. This takes a bit of getting used to. For an eye accustomed to
|
||||||
normalized floating point representations, it is not immediately obvious that
|
normalized floating-point representations, it is not immediately obvious that
|
||||||
the following calculation returns a value equal to zero:
|
the following calculation returns a value equal to zero:
|
||||||
|
|
||||||
>>> 1 / Decimal('Infinity')
|
>>> 1 / Decimal('Infinity')
|
||||||
|
@ -2171,7 +2171,7 @@ value unchanged:
|
||||||
|
|
||||||
Q. Is there a way to convert a regular float to a :class:`Decimal`?
|
Q. Is there a way to convert a regular float to a :class:`Decimal`?
|
||||||
|
|
||||||
A. Yes, any binary floating point number can be exactly expressed as a
|
A. Yes, any binary floating-point number can be exactly expressed as a
|
||||||
Decimal though an exact conversion may take more precision than intuition would
|
Decimal though an exact conversion may take more precision than intuition would
|
||||||
suggest:
|
suggest:
|
||||||
|
|
||||||
|
@ -2225,7 +2225,7 @@ Q. Is the CPython implementation fast for large numbers?
|
||||||
A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of
|
A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of
|
||||||
the decimal module integrate the high speed `libmpdec
|
the decimal module integrate the high speed `libmpdec
|
||||||
<https://www.bytereef.org/mpdecimal/doc/libmpdec/index.html>`_ library for
|
<https://www.bytereef.org/mpdecimal/doc/libmpdec/index.html>`_ library for
|
||||||
arbitrary precision correctly rounded decimal floating point arithmetic [#]_.
|
arbitrary precision correctly rounded decimal floating-point arithmetic [#]_.
|
||||||
``libmpdec`` uses `Karatsuba multiplication
|
``libmpdec`` uses `Karatsuba multiplication
|
||||||
<https://en.wikipedia.org/wiki/Karatsuba_algorithm>`_
|
<https://en.wikipedia.org/wiki/Karatsuba_algorithm>`_
|
||||||
for medium-sized numbers and the `Number Theoretic Transform
|
for medium-sized numbers and the `Number Theoretic Transform
|
||||||
|
|
|
@ -158,7 +158,7 @@ of the new API.
|
||||||
|
|
||||||
Fri, 09 Nov 2001 01:08:47 -0000
|
Fri, 09 Nov 2001 01:08:47 -0000
|
||||||
|
|
||||||
Optional *timeval* if given is a floating point time value as accepted by
|
Optional *timeval* if given is a floating-point time value as accepted by
|
||||||
:func:`time.gmtime` and :func:`time.localtime`, otherwise the current time is
|
:func:`time.gmtime` and :func:`time.localtime`, otherwise the current time is
|
||||||
used.
|
used.
|
||||||
|
|
||||||
|
|
|
@ -412,8 +412,8 @@ The following exceptions are the exceptions that are usually raised.
|
||||||
represented. This cannot occur for integers (which would rather raise
|
represented. This cannot occur for integers (which would rather raise
|
||||||
:exc:`MemoryError` than give up). However, for historical reasons,
|
:exc:`MemoryError` than give up). However, for historical reasons,
|
||||||
OverflowError is sometimes raised for integers that are outside a required
|
OverflowError is sometimes raised for integers that are outside a required
|
||||||
range. Because of the lack of standardization of floating point exception
|
range. Because of the lack of standardization of floating-point exception
|
||||||
handling in C, most floating point operations are not checked.
|
handling in C, most floating-point operations are not checked.
|
||||||
|
|
||||||
|
|
||||||
.. exception:: PythonFinalizationError
|
.. exception:: PythonFinalizationError
|
||||||
|
|
|
@ -35,7 +35,7 @@ another rational number, or from a string.
|
||||||
Assumed, that the :meth:`!as_integer_ratio` method returns a pair
|
Assumed, that the :meth:`!as_integer_ratio` method returns a pair
|
||||||
of coprime integers and last one is positive.
|
of coprime integers and last one is positive.
|
||||||
Note that due to the
|
Note that due to the
|
||||||
usual issues with binary floating-point (see :ref:`tut-fp-issues`), the
|
usual issues with binary point (see :ref:`tut-fp-issues`), the
|
||||||
argument to ``Fraction(1.1)`` is not exactly equal to 11/10, and so
|
argument to ``Fraction(1.1)`` is not exactly equal to 11/10, and so
|
||||||
``Fraction(1.1)`` does *not* return ``Fraction(11, 10)`` as one might expect.
|
``Fraction(1.1)`` does *not* return ``Fraction(11, 10)`` as one might expect.
|
||||||
(But see the documentation for the :meth:`limit_denominator` method below.)
|
(But see the documentation for the :meth:`limit_denominator` method below.)
|
||||||
|
|
|
@ -57,7 +57,7 @@ are always available. They are listed here in alphabetical order.
|
||||||
.. function:: abs(x)
|
.. function:: abs(x)
|
||||||
|
|
||||||
Return the absolute value of a number. The argument may be an
|
Return the absolute value of a number. The argument may be an
|
||||||
integer, a floating point number, or an object implementing
|
integer, a floating-point number, or an object implementing
|
||||||
:meth:`~object.__abs__`.
|
:meth:`~object.__abs__`.
|
||||||
If the argument is a complex number, its magnitude is returned.
|
If the argument is a complex number, its magnitude is returned.
|
||||||
|
|
||||||
|
@ -544,7 +544,7 @@ are always available. They are listed here in alphabetical order.
|
||||||
Take two (non-complex) numbers as arguments and return a pair of numbers
|
Take two (non-complex) numbers as arguments and return a pair of numbers
|
||||||
consisting of their quotient and remainder when using integer division. With
|
consisting of their quotient and remainder when using integer division. With
|
||||||
mixed operand types, the rules for binary arithmetic operators apply. For
|
mixed operand types, the rules for binary arithmetic operators apply. For
|
||||||
integers, the result is the same as ``(a // b, a % b)``. For floating point
|
integers, the result is the same as ``(a // b, a % b)``. For floating-point
|
||||||
numbers the result is ``(q, a % b)``, where *q* is usually ``math.floor(a /
|
numbers the result is ``(q, a % b)``, where *q* is usually ``math.floor(a /
|
||||||
b)`` but may be 1 less than that. In any case ``q * b + a % b`` is very
|
b)`` but may be 1 less than that. In any case ``q * b + a % b`` is very
|
||||||
close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, and ``0
|
close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, and ``0
|
||||||
|
@ -740,7 +740,7 @@ are always available. They are listed here in alphabetical order.
|
||||||
single: NaN
|
single: NaN
|
||||||
single: Infinity
|
single: Infinity
|
||||||
|
|
||||||
Return a floating point number constructed from a number or a string.
|
Return a floating-point number constructed from a number or a string.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
|
@ -781,8 +781,8 @@ are always available. They are listed here in alphabetical order.
|
||||||
Case is not significant, so, for example, "inf", "Inf", "INFINITY", and
|
Case is not significant, so, for example, "inf", "Inf", "INFINITY", and
|
||||||
"iNfINity" are all acceptable spellings for positive infinity.
|
"iNfINity" are all acceptable spellings for positive infinity.
|
||||||
|
|
||||||
Otherwise, if the argument is an integer or a floating point number, a
|
Otherwise, if the argument is an integer or a floating-point number, a
|
||||||
floating point number with the same value (within Python's floating point
|
floating-point number with the same value (within Python's floating-point
|
||||||
precision) is returned. If the argument is outside the range of a Python
|
precision) is returned. If the argument is outside the range of a Python
|
||||||
float, an :exc:`OverflowError` will be raised.
|
float, an :exc:`OverflowError` will be raised.
|
||||||
|
|
||||||
|
@ -1010,7 +1010,7 @@ are always available. They are listed here in alphabetical order.
|
||||||
If the argument defines :meth:`~object.__int__`,
|
If the argument defines :meth:`~object.__int__`,
|
||||||
``int(x)`` returns ``x.__int__()``. If the argument defines
|
``int(x)`` returns ``x.__int__()``. If the argument defines
|
||||||
:meth:`~object.__index__`, it returns ``x.__index__()``.
|
:meth:`~object.__index__`, it returns ``x.__index__()``.
|
||||||
For floating point numbers, this truncates towards zero.
|
For floating-point numbers, this truncates towards zero.
|
||||||
|
|
||||||
If the argument is not a number or if *base* is given, then it must be a string,
|
If the argument is not a number or if *base* is given, then it must be a string,
|
||||||
:class:`bytes`, or :class:`bytearray` instance representing an integer
|
:class:`bytes`, or :class:`bytearray` instance representing an integer
|
||||||
|
@ -1928,7 +1928,7 @@ are always available. They are listed here in alphabetical order.
|
||||||
|
|
||||||
For some use cases, there are good alternatives to :func:`sum`.
|
For some use cases, there are good alternatives to :func:`sum`.
|
||||||
The preferred, fast way to concatenate a sequence of strings is by calling
|
The preferred, fast way to concatenate a sequence of strings is by calling
|
||||||
``''.join(sequence)``. To add floating point values with extended precision,
|
``''.join(sequence)``. To add floating-point values with extended precision,
|
||||||
see :func:`math.fsum`\. To concatenate a series of iterables, consider using
|
see :func:`math.fsum`\. To concatenate a series of iterables, consider using
|
||||||
:func:`itertools.chain`.
|
:func:`itertools.chain`.
|
||||||
|
|
||||||
|
|
|
@ -337,7 +337,7 @@ loops that truncate the stream.
|
||||||
yield n
|
yield n
|
||||||
n += step
|
n += step
|
||||||
|
|
||||||
When counting with floating point numbers, better accuracy can sometimes be
|
When counting with floating-point numbers, better accuracy can sometimes be
|
||||||
achieved by substituting multiplicative code such as: ``(start + step * i
|
achieved by substituting multiplicative code such as: ``(start + step * i
|
||||||
for i in count())``.
|
for i in count())``.
|
||||||
|
|
||||||
|
|
|
@ -424,7 +424,7 @@ The :mod:`locale` module defines the following exception and functions:
|
||||||
.. function:: format_string(format, val, grouping=False, monetary=False)
|
.. function:: format_string(format, val, grouping=False, monetary=False)
|
||||||
|
|
||||||
Formats a number *val* according to the current :const:`LC_NUMERIC` setting.
|
Formats a number *val* according to the current :const:`LC_NUMERIC` setting.
|
||||||
The format follows the conventions of the ``%`` operator. For floating point
|
The format follows the conventions of the ``%`` operator. For floating-point
|
||||||
values, the decimal point is modified if appropriate. If *grouping* is ``True``,
|
values, the decimal point is modified if appropriate. If *grouping* is ``True``,
|
||||||
also takes the grouping into account.
|
also takes the grouping into account.
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ The :mod:`locale` module defines the following exception and functions:
|
||||||
|
|
||||||
.. function:: str(float)
|
.. function:: str(float)
|
||||||
|
|
||||||
Formats a floating point number using the same format as the built-in function
|
Formats a floating-point number using the same format as the built-in function
|
||||||
``str(float)``, but takes the decimal point into account.
|
``str(float)``, but takes the decimal point into account.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ supports a substantially wider range of objects than marshal.
|
||||||
|
|
||||||
Not all Python object types are supported; in general, only objects whose value
|
Not all Python object types are supported; in general, only objects whose value
|
||||||
is independent from a particular invocation of Python can be written and read by
|
is independent from a particular invocation of Python can be written and read by
|
||||||
this module. The following types are supported: booleans, integers, floating
|
this module. The following types are supported: booleans, integers, floating-point
|
||||||
point numbers, complex numbers, strings, bytes, bytearrays, tuples, lists, sets,
|
numbers, complex numbers, strings, bytes, bytearrays, tuples, lists, sets,
|
||||||
frozensets, dictionaries, and code objects (if *allow_code* is true),
|
frozensets, dictionaries, and code objects (if *allow_code* is true),
|
||||||
where it should be understood that
|
where it should be understood that
|
||||||
tuples, lists, sets, frozensets and dictionaries are only supported as long as
|
tuples, lists, sets, frozensets and dictionaries are only supported as long as
|
||||||
|
@ -142,7 +142,7 @@ In addition, the following constants are defined:
|
||||||
|
|
||||||
Indicates the format that the module uses. Version 0 is the historical
|
Indicates the format that the module uses. Version 0 is the historical
|
||||||
format, version 1 shares interned strings and version 2 uses a binary format
|
format, version 1 shares interned strings and version 2 uses a binary format
|
||||||
for floating point numbers.
|
for floating-point numbers.
|
||||||
Version 3 adds support for object instancing and recursion.
|
Version 3 adds support for object instancing and recursion.
|
||||||
The current version is 4.
|
The current version is 4.
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ Number-theoretic and representation functions
|
||||||
|
|
||||||
.. function:: fsum(iterable)
|
.. function:: fsum(iterable)
|
||||||
|
|
||||||
Return an accurate floating point sum of values in the iterable. Avoids
|
Return an accurate floating-point sum of values in the iterable. Avoids
|
||||||
loss of precision by tracking multiple intermediate partial sums.
|
loss of precision by tracking multiple intermediate partial sums.
|
||||||
|
|
||||||
The algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the
|
The algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the
|
||||||
|
@ -133,7 +133,7 @@ Number-theoretic and representation functions
|
||||||
least significant bit.
|
least significant bit.
|
||||||
|
|
||||||
For further discussion and two alternative approaches, see the `ASPN cookbook
|
For further discussion and two alternative approaches, see the `ASPN cookbook
|
||||||
recipes for accurate floating point summation
|
recipes for accurate floating-point summation
|
||||||
<https://code.activestate.com/recipes/393090-binary-floating-point-summation-accurate-to-full-p/>`_\.
|
<https://code.activestate.com/recipes/393090-binary-floating-point-summation-accurate-to-full-p/>`_\.
|
||||||
|
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ Number-theoretic and representation functions
|
||||||
If the result of the remainder operation is zero, that zero will have
|
If the result of the remainder operation is zero, that zero will have
|
||||||
the same sign as *x*.
|
the same sign as *x*.
|
||||||
|
|
||||||
On platforms using IEEE 754 binary floating-point, the result of this
|
On platforms using IEEE 754 binary floating point, the result of this
|
||||||
operation is always exactly representable: no rounding error is introduced.
|
operation is always exactly representable: no rounding error is introduced.
|
||||||
|
|
||||||
.. versionadded:: 3.7
|
.. versionadded:: 3.7
|
||||||
|
|
|
@ -201,14 +201,14 @@ the :mod:`glob` module.)
|
||||||
|
|
||||||
.. function:: getatime(path)
|
.. function:: getatime(path)
|
||||||
|
|
||||||
Return the time of last access of *path*. The return value is a floating point number giving
|
Return the time of last access of *path*. The return value is a floating-point number giving
|
||||||
the number of seconds since the epoch (see the :mod:`time` module). Raise
|
the number of seconds since the epoch (see the :mod:`time` module). Raise
|
||||||
:exc:`OSError` if the file does not exist or is inaccessible.
|
:exc:`OSError` if the file does not exist or is inaccessible.
|
||||||
|
|
||||||
|
|
||||||
.. function:: getmtime(path)
|
.. function:: getmtime(path)
|
||||||
|
|
||||||
Return the time of last modification of *path*. The return value is a floating point number
|
Return the time of last modification of *path*. The return value is a floating-point number
|
||||||
giving the number of seconds since the epoch (see the :mod:`time` module).
|
giving the number of seconds since the epoch (see the :mod:`time` module).
|
||||||
Raise :exc:`OSError` if the file does not exist or is inaccessible.
|
Raise :exc:`OSError` if the file does not exist or is inaccessible.
|
||||||
|
|
||||||
|
|
|
@ -682,7 +682,7 @@ you are using :class:`profile.Profile` or :class:`cProfile.Profile`,
|
||||||
that you choose (see :ref:`profile-calibration`). For most machines, a timer
|
that you choose (see :ref:`profile-calibration`). For most machines, a timer
|
||||||
that returns a lone integer value will provide the best results in terms of
|
that returns a lone integer value will provide the best results in terms of
|
||||||
low overhead during profiling. (:func:`os.times` is *pretty* bad, as it
|
low overhead during profiling. (:func:`os.times` is *pretty* bad, as it
|
||||||
returns a tuple of floating point values). If you want to substitute a
|
returns a tuple of floating-point values). If you want to substitute a
|
||||||
better timer in the cleanest fashion, derive a class and hardwire a
|
better timer in the cleanest fashion, derive a class and hardwire a
|
||||||
replacement dispatch method that best handles your timer call, along with the
|
replacement dispatch method that best handles your timer call, along with the
|
||||||
appropriate calibration constant.
|
appropriate calibration constant.
|
||||||
|
|
|
@ -200,8 +200,8 @@ Functions for sequences
|
||||||
|
|
||||||
For a given seed, the :func:`choices` function with equal weighting
|
For a given seed, the :func:`choices` function with equal weighting
|
||||||
typically produces a different sequence than repeated calls to
|
typically produces a different sequence than repeated calls to
|
||||||
:func:`choice`. The algorithm used by :func:`choices` uses floating
|
:func:`choice`. The algorithm used by :func:`choices` uses floating-point
|
||||||
point arithmetic for internal consistency and speed. The algorithm used
|
arithmetic for internal consistency and speed. The algorithm used
|
||||||
by :func:`choice` defaults to integer arithmetic with repeated selections
|
by :func:`choice` defaults to integer arithmetic with repeated selections
|
||||||
to avoid small biases from round-off error.
|
to avoid small biases from round-off error.
|
||||||
|
|
||||||
|
@ -298,12 +298,12 @@ be found in any statistics text.
|
||||||
|
|
||||||
.. function:: random()
|
.. function:: random()
|
||||||
|
|
||||||
Return the next random floating point number in the range ``0.0 <= X < 1.0``
|
Return the next random floating-point number in the range ``0.0 <= X < 1.0``
|
||||||
|
|
||||||
|
|
||||||
.. function:: uniform(a, b)
|
.. function:: uniform(a, b)
|
||||||
|
|
||||||
Return a random floating point number *N* such that ``a <= N <= b`` for
|
Return a random floating-point number *N* such that ``a <= N <= b`` for
|
||||||
``a <= b`` and ``b <= N <= a`` for ``b < a``.
|
``a <= b`` and ``b <= N <= a`` for ``b < a``.
|
||||||
|
|
||||||
The end-point value ``b`` may or may not be included in the range
|
The end-point value ``b`` may or may not be included in the range
|
||||||
|
@ -313,7 +313,7 @@ be found in any statistics text.
|
||||||
|
|
||||||
.. function:: triangular(low, high, mode)
|
.. function:: triangular(low, high, mode)
|
||||||
|
|
||||||
Return a random floating point number *N* such that ``low <= N <= high`` and
|
Return a random floating-point number *N* such that ``low <= N <= high`` and
|
||||||
with the specified *mode* between those bounds. The *low* and *high* bounds
|
with the specified *mode* between those bounds. The *low* and *high* bounds
|
||||||
default to zero and one. The *mode* argument defaults to the midpoint
|
default to zero and one. The *mode* argument defaults to the midpoint
|
||||||
between the bounds, giving a symmetric distribution.
|
between the bounds, giving a symmetric distribution.
|
||||||
|
@ -741,7 +741,7 @@ The following options are accepted:
|
||||||
.. option:: -f <N>
|
.. option:: -f <N>
|
||||||
--float <N>
|
--float <N>
|
||||||
|
|
||||||
Print a random floating point number between 1 and N inclusive,
|
Print a random floating-point number between 1 and N inclusive,
|
||||||
using :meth:`uniform`.
|
using :meth:`uniform`.
|
||||||
|
|
||||||
If no options are given, the output depends on the input:
|
If no options are given, the output depends on the input:
|
||||||
|
|
|
@ -305,7 +305,7 @@ These functions are used to retrieve resource usage information:
|
||||||
elements.
|
elements.
|
||||||
|
|
||||||
The fields :attr:`ru_utime` and :attr:`ru_stime` of the return value are
|
The fields :attr:`ru_utime` and :attr:`ru_stime` of the return value are
|
||||||
floating point values representing the amount of time spent executing in user
|
floating-point values representing the amount of time spent executing in user
|
||||||
mode and the amount of time spent executing in system mode, respectively. The
|
mode and the amount of time spent executing in system mode, respectively. The
|
||||||
remaining values are integers. Consult the :manpage:`getrusage(2)` man page for
|
remaining values are integers. Consult the :manpage:`getrusage(2)` man page for
|
||||||
detailed information about these values. A brief summary is presented here:
|
detailed information about these values. A brief summary is presented here:
|
||||||
|
|
|
@ -129,7 +129,7 @@ The module defines the following:
|
||||||
|
|
||||||
Empty iterables are allowed, but acceptance of three empty iterables is
|
Empty iterables are allowed, but acceptance of three empty iterables is
|
||||||
platform-dependent. (It is known to work on Unix but not on Windows.) The
|
platform-dependent. (It is known to work on Unix but not on Windows.) The
|
||||||
optional *timeout* argument specifies a time-out as a floating point number
|
optional *timeout* argument specifies a time-out as a floating-point number
|
||||||
in seconds. When the *timeout* argument is omitted the function blocks until
|
in seconds. When the *timeout* argument is omitted the function blocks until
|
||||||
at least one file descriptor is ready. A time-out value of zero specifies a
|
at least one file descriptor is ready. A time-out value of zero specifies a
|
||||||
poll and never blocks.
|
poll and never blocks.
|
||||||
|
|
|
@ -1926,7 +1926,7 @@ to sockets.
|
||||||
.. method:: socket.settimeout(value)
|
.. method:: socket.settimeout(value)
|
||||||
|
|
||||||
Set a timeout on blocking socket operations. The *value* argument can be a
|
Set a timeout on blocking socket operations. The *value* argument can be a
|
||||||
nonnegative floating point number expressing seconds, or ``None``.
|
nonnegative floating-point number expressing seconds, or ``None``.
|
||||||
If a non-zero value is given, subsequent socket operations will raise a
|
If a non-zero value is given, subsequent socket operations will raise a
|
||||||
:exc:`timeout` exception if the timeout period *value* has elapsed before
|
:exc:`timeout` exception if the timeout period *value* has elapsed before
|
||||||
the operation has completed. If zero is given, the socket is put in
|
the operation has completed. If zero is given, the socket is put in
|
||||||
|
|
|
@ -73,7 +73,7 @@ or sample.
|
||||||
|
|
||||||
======================= ===============================================================
|
======================= ===============================================================
|
||||||
:func:`mean` Arithmetic mean ("average") of data.
|
:func:`mean` Arithmetic mean ("average") of data.
|
||||||
:func:`fmean` Fast, floating point arithmetic mean, with optional weighting.
|
:func:`fmean` Fast, floating-point arithmetic mean, with optional weighting.
|
||||||
:func:`geometric_mean` Geometric mean of data.
|
:func:`geometric_mean` Geometric mean of data.
|
||||||
:func:`harmonic_mean` Harmonic mean of data.
|
:func:`harmonic_mean` Harmonic mean of data.
|
||||||
:func:`kde` Estimate the probability density distribution of the data.
|
:func:`kde` Estimate the probability density distribution of the data.
|
||||||
|
|
|
@ -209,18 +209,18 @@ Numeric Types --- :class:`int`, :class:`float`, :class:`complex`
|
||||||
pair: object; numeric
|
pair: object; numeric
|
||||||
pair: object; Boolean
|
pair: object; Boolean
|
||||||
pair: object; integer
|
pair: object; integer
|
||||||
pair: object; floating point
|
pair: object; floating-point
|
||||||
pair: object; complex number
|
pair: object; complex number
|
||||||
pair: C; language
|
pair: C; language
|
||||||
|
|
||||||
There are three distinct numeric types: :dfn:`integers`, :dfn:`floating
|
There are three distinct numeric types: :dfn:`integers`, :dfn:`floating-point
|
||||||
point numbers`, and :dfn:`complex numbers`. In addition, Booleans are a
|
numbers`, and :dfn:`complex numbers`. In addition, Booleans are a
|
||||||
subtype of integers. Integers have unlimited precision. Floating point
|
subtype of integers. Integers have unlimited precision. Floating-point
|
||||||
numbers are usually implemented using :c:expr:`double` in C; information
|
numbers are usually implemented using :c:expr:`double` in C; information
|
||||||
about the precision and internal representation of floating point
|
about the precision and internal representation of floating-point
|
||||||
numbers for the machine on which your program is running is available
|
numbers for the machine on which your program is running is available
|
||||||
in :data:`sys.float_info`. Complex numbers have a real and imaginary
|
in :data:`sys.float_info`. Complex numbers have a real and imaginary
|
||||||
part, which are each a floating point number. To extract these parts
|
part, which are each a floating-point number. To extract these parts
|
||||||
from a complex number *z*, use ``z.real`` and ``z.imag``. (The standard
|
from a complex number *z*, use ``z.real`` and ``z.imag``. (The standard
|
||||||
library includes the additional numeric types :mod:`fractions.Fraction`, for
|
library includes the additional numeric types :mod:`fractions.Fraction`, for
|
||||||
rationals, and :mod:`decimal.Decimal`, for floating-point numbers with
|
rationals, and :mod:`decimal.Decimal`, for floating-point numbers with
|
||||||
|
@ -229,7 +229,7 @@ user-definable precision.)
|
||||||
.. index::
|
.. index::
|
||||||
pair: numeric; literals
|
pair: numeric; literals
|
||||||
pair: integer; literals
|
pair: integer; literals
|
||||||
pair: floating point; literals
|
pair: floating-point; literals
|
||||||
pair: complex number; literals
|
pair: complex number; literals
|
||||||
pair: hexadecimal; literals
|
pair: hexadecimal; literals
|
||||||
pair: octal; literals
|
pair: octal; literals
|
||||||
|
@ -238,7 +238,7 @@ user-definable precision.)
|
||||||
Numbers are created by numeric literals or as the result of built-in functions
|
Numbers are created by numeric literals or as the result of built-in functions
|
||||||
and operators. Unadorned integer literals (including hex, octal and binary
|
and operators. Unadorned integer literals (including hex, octal and binary
|
||||||
numbers) yield integers. Numeric literals containing a decimal point or an
|
numbers) yield integers. Numeric literals containing a decimal point or an
|
||||||
exponent sign yield floating point numbers. Appending ``'j'`` or ``'J'`` to a
|
exponent sign yield floating-point numbers. Appending ``'j'`` or ``'J'`` to a
|
||||||
numeric literal yields an imaginary number (a complex number with a zero real
|
numeric literal yields an imaginary number (a complex number with a zero real
|
||||||
part) which you can add to an integer or float to get a complex number with real
|
part) which you can add to an integer or float to get a complex number with real
|
||||||
and imaginary parts.
|
and imaginary parts.
|
||||||
|
@ -627,10 +627,10 @@ class`. float also has the following additional methods.
|
||||||
|
|
||||||
.. classmethod:: float.from_number(x)
|
.. classmethod:: float.from_number(x)
|
||||||
|
|
||||||
Class method to return a floating point number constructed from a number *x*.
|
Class method to return a floating-point number constructed from a number *x*.
|
||||||
|
|
||||||
If the argument is an integer or a floating point number, a
|
If the argument is an integer or a floating-point number, a
|
||||||
floating point number with the same value (within Python's floating point
|
floating-point number with the same value (within Python's floating-point
|
||||||
precision) is returned. If the argument is outside the range of a Python
|
precision) is returned. If the argument is outside the range of a Python
|
||||||
float, an :exc:`OverflowError` will be raised.
|
float, an :exc:`OverflowError` will be raised.
|
||||||
|
|
||||||
|
@ -1533,8 +1533,8 @@ objects that compare equal might have different :attr:`~range.start`,
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
* The `linspace recipe <https://code.activestate.com/recipes/579000-equally-spaced-numbers-linspace/>`_
|
* The `linspace recipe <https://code.activestate.com/recipes/579000-equally-spaced-numbers-linspace/>`_
|
||||||
shows how to implement a lazy version of range suitable for floating
|
shows how to implement a lazy version of range suitable for floating-point
|
||||||
point applications.
|
applications.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: string; text sequence type
|
single: string; text sequence type
|
||||||
|
@ -2478,19 +2478,19 @@ The conversion types are:
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'X'`` | Signed hexadecimal (uppercase). | \(2) |
|
| ``'X'`` | Signed hexadecimal (uppercase). | \(2) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'e'`` | Floating point exponential format (lowercase). | \(3) |
|
| ``'e'`` | Floating-point exponential format (lowercase). | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'E'`` | Floating point exponential format (uppercase). | \(3) |
|
| ``'E'`` | Floating-point exponential format (uppercase). | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'f'`` | Floating point decimal format. | \(3) |
|
| ``'f'`` | Floating-point decimal format. | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'F'`` | Floating point decimal format. | \(3) |
|
| ``'F'`` | Floating-point decimal format. | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'g'`` | Floating point format. Uses lowercase exponential | \(4) |
|
| ``'g'`` | Floating-point format. Uses lowercase exponential | \(4) |
|
||||||
| | format if exponent is less than -4 or not less than | |
|
| | format if exponent is less than -4 or not less than | |
|
||||||
| | precision, decimal format otherwise. | |
|
| | precision, decimal format otherwise. | |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'G'`` | Floating point format. Uses uppercase exponential | \(4) |
|
| ``'G'`` | Floating-point format. Uses uppercase exponential | \(4) |
|
||||||
| | format if exponent is less than -4 or not less than | |
|
| | format if exponent is less than -4 or not less than | |
|
||||||
| | precision, decimal format otherwise. | |
|
| | precision, decimal format otherwise. | |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
|
@ -3697,19 +3697,19 @@ The conversion types are:
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'X'`` | Signed hexadecimal (uppercase). | \(2) |
|
| ``'X'`` | Signed hexadecimal (uppercase). | \(2) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'e'`` | Floating point exponential format (lowercase). | \(3) |
|
| ``'e'`` | Floating-point exponential format (lowercase). | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'E'`` | Floating point exponential format (uppercase). | \(3) |
|
| ``'E'`` | Floating-point exponential format (uppercase). | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'f'`` | Floating point decimal format. | \(3) |
|
| ``'f'`` | Floating-point decimal format. | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'F'`` | Floating point decimal format. | \(3) |
|
| ``'F'`` | Floating-point decimal format. | \(3) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'g'`` | Floating point format. Uses lowercase exponential | \(4) |
|
| ``'g'`` | Floating-point format. Uses lowercase exponential | \(4) |
|
||||||
| | format if exponent is less than -4 or not less than | |
|
| | format if exponent is less than -4 or not less than | |
|
||||||
| | precision, decimal format otherwise. | |
|
| | precision, decimal format otherwise. | |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'G'`` | Floating point format. Uses uppercase exponential | \(4) |
|
| ``'G'`` | Floating-point format. Uses uppercase exponential | \(4) |
|
||||||
| | format if exponent is less than -4 or not less than | |
|
| | format if exponent is less than -4 or not less than | |
|
||||||
| | precision, decimal format otherwise. | |
|
| | precision, decimal format otherwise. | |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
|
@ -3931,7 +3931,7 @@ copying.
|
||||||
>>> a == b
|
>>> a == b
|
||||||
False
|
False
|
||||||
|
|
||||||
Note that, as with floating point numbers, ``v is w`` does *not* imply
|
Note that, as with floating-point numbers, ``v is w`` does *not* imply
|
||||||
``v == w`` for memoryview objects.
|
``v == w`` for memoryview objects.
|
||||||
|
|
||||||
.. versionchanged:: 3.3
|
.. versionchanged:: 3.3
|
||||||
|
|
|
@ -418,7 +418,7 @@ instead.
|
||||||
.. index:: single: _ (underscore); in string formatting
|
.. index:: single: _ (underscore); in string formatting
|
||||||
|
|
||||||
The ``'_'`` option signals the use of an underscore for a thousands
|
The ``'_'`` option signals the use of an underscore for a thousands
|
||||||
separator for floating point presentation types and for integer
|
separator for floating-point presentation types and for integer
|
||||||
presentation type ``'d'``. For integer presentation types ``'b'``,
|
presentation type ``'d'``. For integer presentation types ``'b'``,
|
||||||
``'o'``, ``'x'``, and ``'X'``, underscores will be inserted every 4
|
``'o'``, ``'x'``, and ``'X'``, underscores will be inserted every 4
|
||||||
digits. For other presentation types, specifying this option is an
|
digits. For other presentation types, specifying this option is an
|
||||||
|
@ -491,9 +491,9 @@ The available integer presentation types are:
|
||||||
+---------+----------------------------------------------------------+
|
+---------+----------------------------------------------------------+
|
||||||
|
|
||||||
In addition to the above presentation types, integers can be formatted
|
In addition to the above presentation types, integers can be formatted
|
||||||
with the floating point presentation types listed below (except
|
with the floating-point presentation types listed below (except
|
||||||
``'n'`` and ``None``). When doing so, :func:`float` is used to convert the
|
``'n'`` and ``None``). When doing so, :func:`float` is used to convert the
|
||||||
integer to a floating point number before formatting.
|
integer to a floating-point number before formatting.
|
||||||
|
|
||||||
The available presentation types for :class:`float` and
|
The available presentation types for :class:`float` and
|
||||||
:class:`~decimal.Decimal` values are:
|
:class:`~decimal.Decimal` values are:
|
||||||
|
|
|
@ -412,7 +412,7 @@ since it is impossible to detect the termination of alien threads.
|
||||||
timeout occurs.
|
timeout occurs.
|
||||||
|
|
||||||
When the *timeout* argument is present and not ``None``, it should be a
|
When the *timeout* argument is present and not ``None``, it should be a
|
||||||
floating point number specifying a timeout for the operation in seconds
|
floating-point number specifying a timeout for the operation in seconds
|
||||||
(or fractions thereof). As :meth:`~Thread.join` always returns ``None``,
|
(or fractions thereof). As :meth:`~Thread.join` always returns ``None``,
|
||||||
you must call :meth:`~Thread.is_alive` after :meth:`~Thread.join` to
|
you must call :meth:`~Thread.is_alive` after :meth:`~Thread.join` to
|
||||||
decide whether a timeout happened -- if the thread is still alive, the
|
decide whether a timeout happened -- if the thread is still alive, the
|
||||||
|
@ -794,7 +794,7 @@ item to the buffer only needs to wake up one consumer thread.
|
||||||
occurs. Once awakened or timed out, it re-acquires the lock and returns.
|
occurs. Once awakened or timed out, it re-acquires the lock and returns.
|
||||||
|
|
||||||
When the *timeout* argument is present and not ``None``, it should be a
|
When the *timeout* argument is present and not ``None``, it should be a
|
||||||
floating point number specifying a timeout for the operation in seconds
|
floating-point number specifying a timeout for the operation in seconds
|
||||||
(or fractions thereof).
|
(or fractions thereof).
|
||||||
|
|
||||||
When the underlying lock is an :class:`RLock`, it is not released using
|
When the underlying lock is an :class:`RLock`, it is not released using
|
||||||
|
@ -1021,7 +1021,7 @@ method. The :meth:`~Event.wait` method blocks until the flag is true.
|
||||||
the the internal flag did not become true within the given wait time.
|
the the internal flag did not become true within the given wait time.
|
||||||
|
|
||||||
When the timeout argument is present and not ``None``, it should be a
|
When the timeout argument is present and not ``None``, it should be a
|
||||||
floating point number specifying a timeout for the operation in seconds,
|
floating-point number specifying a timeout for the operation in seconds,
|
||||||
or fractions thereof.
|
or fractions thereof.
|
||||||
|
|
||||||
.. versionchanged:: 3.1
|
.. versionchanged:: 3.1
|
||||||
|
|
|
@ -69,7 +69,7 @@ An explanation of some terminology and conventions is in order.
|
||||||
systems, the clock "ticks" only 50 or 100 times a second.
|
systems, the clock "ticks" only 50 or 100 times a second.
|
||||||
|
|
||||||
* On the other hand, the precision of :func:`.time` and :func:`sleep` is better
|
* On the other hand, the precision of :func:`.time` and :func:`sleep` is better
|
||||||
than their Unix equivalents: times are expressed as floating point numbers,
|
than their Unix equivalents: times are expressed as floating-point numbers,
|
||||||
:func:`.time` returns the most accurate time available (using Unix
|
:func:`.time` returns the most accurate time available (using Unix
|
||||||
:c:func:`!gettimeofday` where available), and :func:`sleep` will accept a time
|
:c:func:`!gettimeofday` where available), and :func:`sleep` will accept a time
|
||||||
with a nonzero fraction (Unix :c:func:`!select` is used to implement this, where
|
with a nonzero fraction (Unix :c:func:`!select` is used to implement this, where
|
||||||
|
@ -273,7 +273,7 @@ Functions
|
||||||
This is the inverse function of :func:`localtime`. Its argument is the
|
This is the inverse function of :func:`localtime`. Its argument is the
|
||||||
:class:`struct_time` or full 9-tuple (since the dst flag is needed; use ``-1``
|
:class:`struct_time` or full 9-tuple (since the dst flag is needed; use ``-1``
|
||||||
as the dst flag if it is unknown) which expresses the time in *local* time, not
|
as the dst flag if it is unknown) which expresses the time in *local* time, not
|
||||||
UTC. It returns a floating point number, for compatibility with :func:`.time`.
|
UTC. It returns a floating-point number, for compatibility with :func:`.time`.
|
||||||
If the input value cannot be represented as a valid time, either
|
If the input value cannot be represented as a valid time, either
|
||||||
:exc:`OverflowError` or :exc:`ValueError` will be raised (which depends on
|
:exc:`OverflowError` or :exc:`ValueError` will be raised (which depends on
|
||||||
whether the invalid value is caught by Python or the underlying C libraries).
|
whether the invalid value is caught by Python or the underlying C libraries).
|
||||||
|
@ -376,7 +376,7 @@ Functions
|
||||||
.. function:: sleep(secs)
|
.. function:: sleep(secs)
|
||||||
|
|
||||||
Suspend execution of the calling thread for the given number of seconds.
|
Suspend execution of the calling thread for the given number of seconds.
|
||||||
The argument may be a floating point number to indicate a more precise sleep
|
The argument may be a floating-point number to indicate a more precise sleep
|
||||||
time.
|
time.
|
||||||
|
|
||||||
If the sleep is interrupted by a signal and no exception is raised by the
|
If the sleep is interrupted by a signal and no exception is raised by the
|
||||||
|
@ -665,13 +665,13 @@ Functions
|
||||||
|
|
||||||
.. function:: time() -> float
|
.. function:: time() -> float
|
||||||
|
|
||||||
Return the time in seconds since the epoch_ as a floating point
|
Return the time in seconds since the epoch_ as a floating-point
|
||||||
number. The handling of `leap seconds`_ is platform dependent.
|
number. The handling of `leap seconds`_ is platform dependent.
|
||||||
On Windows and most Unix systems, the leap seconds are not counted towards
|
On Windows and most Unix systems, the leap seconds are not counted towards
|
||||||
the time in seconds since the epoch_. This is commonly referred to as `Unix
|
the time in seconds since the epoch_. This is commonly referred to as `Unix
|
||||||
time <https://en.wikipedia.org/wiki/Unix_time>`_.
|
time <https://en.wikipedia.org/wiki/Unix_time>`_.
|
||||||
|
|
||||||
Note that even though the time is always returned as a floating point
|
Note that even though the time is always returned as a floating-point
|
||||||
number, not all systems provide time with a better precision than 1 second.
|
number, not all systems provide time with a better precision than 1 second.
|
||||||
While this function normally returns non-decreasing values, it can return a
|
While this function normally returns non-decreasing values, it can return a
|
||||||
lower value than a previous call if the system clock has been set back
|
lower value than a previous call if the system clock has been set back
|
||||||
|
|
|
@ -218,7 +218,7 @@ properties:
|
||||||
|
|
||||||
* A sign is shown only when the number is negative.
|
* A sign is shown only when the number is negative.
|
||||||
|
|
||||||
Python distinguishes between integers, floating point numbers, and complex
|
Python distinguishes between integers, floating-point numbers, and complex
|
||||||
numbers:
|
numbers:
|
||||||
|
|
||||||
|
|
||||||
|
@ -262,18 +262,18 @@ Booleans (:class:`bool`)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
pair: object; floating point
|
pair: object; floating-point
|
||||||
pair: floating point; number
|
pair: floating-point; number
|
||||||
pair: C; language
|
pair: C; language
|
||||||
pair: Java; language
|
pair: Java; language
|
||||||
|
|
||||||
These represent machine-level double precision floating point numbers. You are
|
These represent machine-level double precision floating-point numbers. You are
|
||||||
at the mercy of the underlying machine architecture (and C or Java
|
at the mercy of the underlying machine architecture (and C or Java
|
||||||
implementation) for the accepted range and handling of overflow. Python does not
|
implementation) for the accepted range and handling of overflow. Python does not
|
||||||
support single-precision floating point numbers; the savings in processor and
|
support single-precision floating-point numbers; the savings in processor and
|
||||||
memory usage that are usually the reason for using these are dwarfed by the
|
memory usage that are usually the reason for using these are dwarfed by the
|
||||||
overhead of using objects in Python, so there is no reason to complicate the
|
overhead of using objects in Python, so there is no reason to complicate the
|
||||||
language with two kinds of floating point numbers.
|
language with two kinds of floating-point numbers.
|
||||||
|
|
||||||
|
|
||||||
:class:`numbers.Complex` (:class:`complex`)
|
:class:`numbers.Complex` (:class:`complex`)
|
||||||
|
@ -284,7 +284,7 @@ language with two kinds of floating point numbers.
|
||||||
pair: complex; number
|
pair: complex; number
|
||||||
|
|
||||||
These represent complex numbers as a pair of machine-level double precision
|
These represent complex numbers as a pair of machine-level double precision
|
||||||
floating point numbers. The same caveats apply as for floating point numbers.
|
floating-point numbers. The same caveats apply as for floating-point numbers.
|
||||||
The real and imaginary parts of a complex number ``z`` can be retrieved through
|
The real and imaginary parts of a complex number ``z`` can be retrieved through
|
||||||
the read-only attributes ``z.real`` and ``z.imag``.
|
the read-only attributes ``z.real`` and ``z.imag``.
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ implementation for built-in types works as follows:
|
||||||
|
|
||||||
* If either argument is a complex number, the other is converted to complex;
|
* If either argument is a complex number, the other is converted to complex;
|
||||||
|
|
||||||
* otherwise, if either argument is a floating point number, the other is
|
* otherwise, if either argument is a floating-point number, the other is
|
||||||
converted to floating point;
|
converted to floating point;
|
||||||
|
|
||||||
* otherwise, both must be integers and no conversion is necessary.
|
* otherwise, both must be integers and no conversion is necessary.
|
||||||
|
@ -139,8 +139,8 @@ Python supports string and bytes literals and various numeric literals:
|
||||||
: | `integer` | `floatnumber` | `imagnumber`
|
: | `integer` | `floatnumber` | `imagnumber`
|
||||||
|
|
||||||
Evaluation of a literal yields an object of the given type (string, bytes,
|
Evaluation of a literal yields an object of the given type (string, bytes,
|
||||||
integer, floating point number, complex number) with the given value. The value
|
integer, floating-point number, complex number) with the given value. The value
|
||||||
may be approximated in the case of floating point and imaginary (complex)
|
may be approximated in the case of floating-point and imaginary (complex)
|
||||||
literals. See section :ref:`literals` for details.
|
literals. See section :ref:`literals` for details.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
|
@ -1361,7 +1361,7 @@ The floor division operation can be customized using the special
|
||||||
The ``%`` (modulo) operator yields the remainder from the division of the first
|
The ``%`` (modulo) operator yields the remainder from the division of the first
|
||||||
argument by the second. The numeric arguments are first converted to a common
|
argument by the second. The numeric arguments are first converted to a common
|
||||||
type. A zero right argument raises the :exc:`ZeroDivisionError` exception. The
|
type. A zero right argument raises the :exc:`ZeroDivisionError` exception. The
|
||||||
arguments may be floating point numbers, e.g., ``3.14%0.7`` equals ``0.34``
|
arguments may be floating-point numbers, e.g., ``3.14%0.7`` equals ``0.34``
|
||||||
(since ``3.14`` equals ``4*0.7 + 0.34``.) The modulo operator always yields a
|
(since ``3.14`` equals ``4*0.7 + 0.34``.) The modulo operator always yields a
|
||||||
result with the same sign as its second operand (or zero); the absolute value of
|
result with the same sign as its second operand (or zero); the absolute value of
|
||||||
the result is strictly smaller than the absolute value of the second operand
|
the result is strictly smaller than the absolute value of the second operand
|
||||||
|
@ -1381,8 +1381,8 @@ The *modulo* operation can be customized using the special :meth:`~object.__mod_
|
||||||
and :meth:`~object.__rmod__` methods.
|
and :meth:`~object.__rmod__` methods.
|
||||||
|
|
||||||
The floor division operator, the modulo operator, and the :func:`divmod`
|
The floor division operator, the modulo operator, and the :func:`divmod`
|
||||||
function are not defined for complex numbers. Instead, convert to a floating
|
function are not defined for complex numbers. Instead, convert to a
|
||||||
point number using the :func:`abs` function if appropriate.
|
floating-point number using the :func:`abs` function if appropriate.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: addition
|
single: addition
|
||||||
|
|
|
@ -879,10 +879,10 @@ Numeric literals
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
.. index:: number, numeric literal, integer literal
|
.. index:: number, numeric literal, integer literal
|
||||||
floating point literal, hexadecimal literal
|
floating-point literal, hexadecimal literal
|
||||||
octal literal, binary literal, decimal literal, imaginary literal, complex literal
|
octal literal, binary literal, decimal literal, imaginary literal, complex literal
|
||||||
|
|
||||||
There are three types of numeric literals: integers, floating point numbers, and
|
There are three types of numeric literals: integers, floating-point numbers, and
|
||||||
imaginary numbers. There are no complex literals (complex numbers can be formed
|
imaginary numbers. There are no complex literals (complex numbers can be formed
|
||||||
by adding a real number and an imaginary number).
|
by adding a real number and an imaginary number).
|
||||||
|
|
||||||
|
@ -943,10 +943,10 @@ Some examples of integer literals::
|
||||||
single: _ (underscore); in numeric literal
|
single: _ (underscore); in numeric literal
|
||||||
.. _floating:
|
.. _floating:
|
||||||
|
|
||||||
Floating point literals
|
Floating-point literals
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Floating point literals are described by the following lexical definitions:
|
Floating-point literals are described by the following lexical definitions:
|
||||||
|
|
||||||
.. productionlist:: python-grammar
|
.. productionlist:: python-grammar
|
||||||
floatnumber: `pointfloat` | `exponentfloat`
|
floatnumber: `pointfloat` | `exponentfloat`
|
||||||
|
@ -958,10 +958,10 @@ Floating point literals are described by the following lexical definitions:
|
||||||
|
|
||||||
Note that the integer and exponent parts are always interpreted using radix 10.
|
Note that the integer and exponent parts are always interpreted using radix 10.
|
||||||
For example, ``077e010`` is legal, and denotes the same number as ``77e10``. The
|
For example, ``077e010`` is legal, and denotes the same number as ``77e10``. The
|
||||||
allowed range of floating point literals is implementation-dependent. As in
|
allowed range of floating-point literals is implementation-dependent. As in
|
||||||
integer literals, underscores are supported for digit grouping.
|
integer literals, underscores are supported for digit grouping.
|
||||||
|
|
||||||
Some examples of floating point literals::
|
Some examples of floating-point literals::
|
||||||
|
|
||||||
3.14 10. .001 1e100 3.14e-10 0e0 3.14_15_93
|
3.14 10. .001 1e100 3.14e-10 0e0 3.14_15_93
|
||||||
|
|
||||||
|
@ -982,9 +982,9 @@ Imaginary literals are described by the following lexical definitions:
|
||||||
imagnumber: (`floatnumber` | `digitpart`) ("j" | "J")
|
imagnumber: (`floatnumber` | `digitpart`) ("j" | "J")
|
||||||
|
|
||||||
An imaginary literal yields a complex number with a real part of 0.0. Complex
|
An imaginary literal yields a complex number with a real part of 0.0. Complex
|
||||||
numbers are represented as a pair of floating point numbers and have the same
|
numbers are represented as a pair of floating-point numbers and have the same
|
||||||
restrictions on their range. To create a complex number with a nonzero real
|
restrictions on their range. To create a complex number with a nonzero real
|
||||||
part, add a floating point number to it, e.g., ``(3+4j)``. Some examples of
|
part, add a floating-point number to it, e.g., ``(3+4j)``. Some examples of
|
||||||
imaginary literals::
|
imaginary literals::
|
||||||
|
|
||||||
3.14j 10.j 10j .001j 1e100j 3.14e-10j 3.14_15_93j
|
3.14j 10.j 10j .001j 1e100j 3.14e-10j 3.14_15_93j
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
.. _tut-fp-issues:
|
.. _tut-fp-issues:
|
||||||
|
|
||||||
**************************************************
|
**************************************************
|
||||||
Floating Point Arithmetic: Issues and Limitations
|
Floating-Point Arithmetic: Issues and Limitations
|
||||||
**************************************************
|
**************************************************
|
||||||
|
|
||||||
.. sectionauthor:: Tim Peters <tim_one@users.sourceforge.net>
|
.. sectionauthor:: Tim Peters <tim_one@users.sourceforge.net>
|
||||||
|
@ -88,7 +88,7 @@ the one with 17 significant digits, ``0.10000000000000001``. Starting with
|
||||||
Python 3.1, Python (on most systems) is now able to choose the shortest of
|
Python 3.1, Python (on most systems) is now able to choose the shortest of
|
||||||
these and simply display ``0.1``.
|
these and simply display ``0.1``.
|
||||||
|
|
||||||
Note that this is in the very nature of binary floating-point: this is not a bug
|
Note that this is in the very nature of binary floating point: this is not a bug
|
||||||
in Python, and it is not a bug in your code either. You'll see the same kind of
|
in Python, and it is not a bug in your code either. You'll see the same kind of
|
||||||
thing in all languages that support your hardware's floating-point arithmetic
|
thing in all languages that support your hardware's floating-point arithmetic
|
||||||
(although some languages may not *display* the difference by default, or in all
|
(although some languages may not *display* the difference by default, or in all
|
||||||
|
@ -148,13 +148,13 @@ Binary floating-point arithmetic holds many surprises like this. The problem
|
||||||
with "0.1" is explained in precise detail below, in the "Representation Error"
|
with "0.1" is explained in precise detail below, in the "Representation Error"
|
||||||
section. See `Examples of Floating Point Problems
|
section. See `Examples of Floating Point Problems
|
||||||
<https://jvns.ca/blog/2023/01/13/examples-of-floating-point-problems/>`_ for
|
<https://jvns.ca/blog/2023/01/13/examples-of-floating-point-problems/>`_ for
|
||||||
a pleasant summary of how binary floating-point works and the kinds of
|
a pleasant summary of how binary floating point works and the kinds of
|
||||||
problems commonly encountered in practice. Also see
|
problems commonly encountered in practice. Also see
|
||||||
`The Perils of Floating Point <http://www.indowsway.com/floatingpoint.htm>`_
|
`The Perils of Floating Point <http://www.indowsway.com/floatingpoint.htm>`_
|
||||||
for a more complete account of other common surprises.
|
for a more complete account of other common surprises.
|
||||||
|
|
||||||
As that says near the end, "there are no easy answers." Still, don't be unduly
|
As that says near the end, "there are no easy answers." Still, don't be unduly
|
||||||
wary of floating-point! The errors in Python float operations are inherited
|
wary of floating point! The errors in Python float operations are inherited
|
||||||
from the floating-point hardware, and on most machines are on the order of no
|
from the floating-point hardware, and on most machines are on the order of no
|
||||||
more than 1 part in 2\*\*53 per operation. That's more than adequate for most
|
more than 1 part in 2\*\*53 per operation. That's more than adequate for most
|
||||||
tasks, but you do need to keep in mind that it's not decimal arithmetic and
|
tasks, but you do need to keep in mind that it's not decimal arithmetic and
|
||||||
|
|
|
@ -62,7 +62,7 @@ For example::
|
||||||
20
|
20
|
||||||
>>> (50 - 5*6) / 4
|
>>> (50 - 5*6) / 4
|
||||||
5.0
|
5.0
|
||||||
>>> 8 / 5 # division always returns a floating point number
|
>>> 8 / 5 # division always returns a floating-point number
|
||||||
1.6
|
1.6
|
||||||
|
|
||||||
The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`,
|
The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`,
|
||||||
|
@ -544,7 +544,7 @@ This example introduces several new features.
|
||||||
* The :func:`print` function writes the value of the argument(s) it is given.
|
* The :func:`print` function writes the value of the argument(s) it is given.
|
||||||
It differs from just writing the expression you want to write (as we did
|
It differs from just writing the expression you want to write (as we did
|
||||||
earlier in the calculator examples) in the way it handles multiple arguments,
|
earlier in the calculator examples) in the way it handles multiple arguments,
|
||||||
floating point quantities, and strings. Strings are printed without quotes,
|
floating-point quantities, and strings. Strings are printed without quotes,
|
||||||
and a space is inserted between items, so you can format things nicely, like
|
and a space is inserted between items, so you can format things nicely, like
|
||||||
this::
|
this::
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@ Mathematics
|
||||||
===========
|
===========
|
||||||
|
|
||||||
The :mod:`math` module gives access to the underlying C library functions for
|
The :mod:`math` module gives access to the underlying C library functions for
|
||||||
floating point math::
|
floating-point math::
|
||||||
|
|
||||||
>>> import math
|
>>> import math
|
||||||
>>> math.cos(math.pi / 4)
|
>>> math.cos(math.pi / 4)
|
||||||
|
|
|
@ -352,11 +352,11 @@ not want to run a full list sort::
|
||||||
|
|
||||||
.. _tut-decimal-fp:
|
.. _tut-decimal-fp:
|
||||||
|
|
||||||
Decimal Floating Point Arithmetic
|
Decimal Floating-Point Arithmetic
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for
|
The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for
|
||||||
decimal floating point arithmetic. Compared to the built-in :class:`float`
|
decimal floating-point arithmetic. Compared to the built-in :class:`float`
|
||||||
implementation of binary floating point, the class is especially helpful for
|
implementation of binary floating point, the class is especially helpful for
|
||||||
|
|
||||||
* financial applications and other uses which require exact decimal
|
* financial applications and other uses which require exact decimal
|
||||||
|
|
|
@ -16,8 +16,8 @@ Features and minimum versions required to build CPython:
|
||||||
|
|
||||||
* On Windows, Microsoft Visual Studio 2017 or later is required.
|
* On Windows, Microsoft Visual Studio 2017 or later is required.
|
||||||
|
|
||||||
* Support for `IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754>`_ floating
|
* Support for `IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754>`_
|
||||||
point numbers and `floating point Not-a-Number (NaN)
|
floating-point numbers and `floating-point Not-a-Number (NaN)
|
||||||
<https://en.wikipedia.org/wiki/NaN#Floating_point>`_.
|
<https://en.wikipedia.org/wiki/NaN#Floating_point>`_.
|
||||||
|
|
||||||
* Support for threads.
|
* Support for threads.
|
||||||
|
|
|
@ -644,9 +644,9 @@ New and Improved Modules
|
||||||
lists the function arguments and the local variables for each frame.
|
lists the function arguments and the local variables for each frame.
|
||||||
|
|
||||||
* Various functions in the :mod:`time` module, such as :func:`~time.asctime` and
|
* Various functions in the :mod:`time` module, such as :func:`~time.asctime` and
|
||||||
:func:`~time.localtime`, require a floating point argument containing the time in
|
:func:`~time.localtime`, require a floating-point argument containing the time in
|
||||||
seconds since the epoch. The most common use of these functions is to work with
|
seconds since the epoch. The most common use of these functions is to work with
|
||||||
the current time, so the floating point argument has been made optional; when a
|
the current time, so the floating-point argument has been made optional; when a
|
||||||
value isn't provided, the current time will be used. For example, log file
|
value isn't provided, the current time will be used. For example, log file
|
||||||
entries usually need a string containing the current time; in Python 2.1,
|
entries usually need a string containing the current time; in Python 2.1,
|
||||||
``time.asctime()`` can be used, instead of the lengthier
|
``time.asctime()`` can be used, instead of the lengthier
|
||||||
|
|
|
@ -1249,7 +1249,7 @@ Some of the more notable changes are:
|
||||||
|
|
||||||
* The :func:`pow` built-in function no longer supports 3 arguments when
|
* The :func:`pow` built-in function no longer supports 3 arguments when
|
||||||
floating-point numbers are supplied. ``pow(x, y, z)`` returns ``(x**y) % z``,
|
floating-point numbers are supplied. ``pow(x, y, z)`` returns ``(x**y) % z``,
|
||||||
but this is never useful for floating point numbers, and the final result varies
|
but this is never useful for floating-point numbers, and the final result varies
|
||||||
unpredictably depending on the platform. A call such as ``pow(2.0, 8.0, 7.0)``
|
unpredictably depending on the platform. A call such as ``pow(2.0, 8.0, 7.0)``
|
||||||
will now raise a :exc:`TypeError` exception.
|
will now raise a :exc:`TypeError` exception.
|
||||||
|
|
||||||
|
|
|
@ -1382,7 +1382,7 @@ complete list of changes, or look through the CVS logs for all the details.
|
||||||
In Python 2.4, the default will change to always returning floats.
|
In Python 2.4, the default will change to always returning floats.
|
||||||
|
|
||||||
Application developers should enable this feature only if all their libraries
|
Application developers should enable this feature only if all their libraries
|
||||||
work properly when confronted with floating point time stamps, or if they use
|
work properly when confronted with floating-point time stamps, or if they use
|
||||||
the tuple API. If used, the feature should be activated on an application level
|
the tuple API. If used, the feature should be activated on an application level
|
||||||
instead of trying to enable it on a per-use basis.
|
instead of trying to enable it on a per-use basis.
|
||||||
|
|
||||||
|
|
|
@ -3051,7 +3051,7 @@ Changes to Python's build process and to the C API include:
|
||||||
|
|
||||||
* Several functions return information about the platform's
|
* Several functions return information about the platform's
|
||||||
floating-point support. :c:func:`PyFloat_GetMax` returns
|
floating-point support. :c:func:`PyFloat_GetMax` returns
|
||||||
the maximum representable floating point value,
|
the maximum representable floating-point value,
|
||||||
and :c:func:`PyFloat_GetMin` returns the minimum
|
and :c:func:`PyFloat_GetMin` returns the minimum
|
||||||
positive value. :c:func:`PyFloat_GetInfo` returns an object
|
positive value. :c:func:`PyFloat_GetInfo` returns an object
|
||||||
containing more information from the :file:`float.h` file, such as
|
containing more information from the :file:`float.h` file, such as
|
||||||
|
|
|
@ -1198,7 +1198,7 @@ changes, or look through the Subversion logs for all the details.
|
||||||
of the operands. Previously such comparisons would fall back to
|
of the operands. Previously such comparisons would fall back to
|
||||||
Python's default rules for comparing objects, which produced arbitrary
|
Python's default rules for comparing objects, which produced arbitrary
|
||||||
results based on their type. Note that you still cannot combine
|
results based on their type. Note that you still cannot combine
|
||||||
:class:`!Decimal` and floating-point in other operations such as addition,
|
:class:`!Decimal` and floating point in other operations such as addition,
|
||||||
since you should be explicitly choosing how to convert between float and
|
since you should be explicitly choosing how to convert between float and
|
||||||
:class:`!Decimal`. (Fixed by Mark Dickinson; :issue:`2531`.)
|
:class:`!Decimal`. (Fixed by Mark Dickinson; :issue:`2531`.)
|
||||||
|
|
||||||
|
|
|
@ -205,9 +205,9 @@ Some smaller changes made to the core Python language are:
|
||||||
|
|
||||||
(Contributed by Mark Dickinson; :issue:`4707`.)
|
(Contributed by Mark Dickinson; :issue:`4707`.)
|
||||||
|
|
||||||
* Python now uses David Gay's algorithm for finding the shortest floating
|
* Python now uses David Gay's algorithm for finding the shortest floating-point
|
||||||
point representation that doesn't change its value. This should help
|
representation that doesn't change its value. This should help
|
||||||
mitigate some of the confusion surrounding binary floating point
|
mitigate some of the confusion surrounding binary floating-point
|
||||||
numbers.
|
numbers.
|
||||||
|
|
||||||
The significance is easily seen with a number like ``1.1`` which does not
|
The significance is easily seen with a number like ``1.1`` which does not
|
||||||
|
@ -215,7 +215,7 @@ Some smaller changes made to the core Python language are:
|
||||||
equivalent, an expression like ``float('1.1')`` evaluates to the nearest
|
equivalent, an expression like ``float('1.1')`` evaluates to the nearest
|
||||||
representable value which is ``0x1.199999999999ap+0`` in hex or
|
representable value which is ``0x1.199999999999ap+0`` in hex or
|
||||||
``1.100000000000000088817841970012523233890533447265625`` in decimal. That
|
``1.100000000000000088817841970012523233890533447265625`` in decimal. That
|
||||||
nearest value was and still is used in subsequent floating point
|
nearest value was and still is used in subsequent floating-point
|
||||||
calculations.
|
calculations.
|
||||||
|
|
||||||
What is new is how the number gets displayed. Formerly, Python used a
|
What is new is how the number gets displayed. Formerly, Python used a
|
||||||
|
@ -224,7 +224,7 @@ Some smaller changes made to the core Python language are:
|
||||||
using 17 digits was that it relied on IEEE-754 guarantees to assure that
|
using 17 digits was that it relied on IEEE-754 guarantees to assure that
|
||||||
``eval(repr(1.1))`` would round-trip exactly to its original value. The
|
``eval(repr(1.1))`` would round-trip exactly to its original value. The
|
||||||
disadvantage is that many people found the output to be confusing (mistaking
|
disadvantage is that many people found the output to be confusing (mistaking
|
||||||
intrinsic limitations of binary floating point representation as being a
|
intrinsic limitations of binary floating-point representation as being a
|
||||||
problem with Python itself).
|
problem with Python itself).
|
||||||
|
|
||||||
The new algorithm for ``repr(1.1)`` is smarter and returns ``'1.1'``.
|
The new algorithm for ``repr(1.1)`` is smarter and returns ``'1.1'``.
|
||||||
|
@ -236,8 +236,8 @@ Some smaller changes made to the core Python language are:
|
||||||
it does not change the underlying values. So, it is still the case that
|
it does not change the underlying values. So, it is still the case that
|
||||||
``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise.
|
``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise.
|
||||||
|
|
||||||
The new algorithm depends on certain features in the underlying floating
|
The new algorithm depends on certain features in the underlying floating-point
|
||||||
point implementation. If the required features are not found, the old
|
implementation. If the required features are not found, the old
|
||||||
algorithm will continue to be used. Also, the text pickle protocols
|
algorithm will continue to be used. Also, the text pickle protocols
|
||||||
assure cross-platform portability by using the old algorithm.
|
assure cross-platform portability by using the old algorithm.
|
||||||
|
|
||||||
|
@ -550,7 +550,7 @@ Porting to Python 3.1
|
||||||
This section lists previously described changes and other bugfixes
|
This section lists previously described changes and other bugfixes
|
||||||
that may require changes to your code:
|
that may require changes to your code:
|
||||||
|
|
||||||
* The new floating point string representations can break existing doctests.
|
* The new floating-point string representations can break existing doctests.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
def e():
|
def e():
|
||||||
|
|
|
@ -2138,7 +2138,7 @@ Build Changes
|
||||||
:issue:`45440` and :issue:`46640`.)
|
:issue:`45440` and :issue:`46640`.)
|
||||||
|
|
||||||
* Support for `IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754>`_
|
* Support for `IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754>`_
|
||||||
floating point numbers.
|
floating-point numbers.
|
||||||
(Contributed by Victor Stinner in :issue:`46917`.)
|
(Contributed by Victor Stinner in :issue:`46917`.)
|
||||||
|
|
||||||
* The :c:macro:`!Py_NO_NAN` macro has been removed.
|
* The :c:macro:`!Py_NO_NAN` macro has been removed.
|
||||||
|
|
|
@ -1312,7 +1312,7 @@ An early decision to limit the interoperability of various numeric types has
|
||||||
been relaxed. It is still unsupported (and ill-advised) to have implicit
|
been relaxed. It is still unsupported (and ill-advised) to have implicit
|
||||||
mixing in arithmetic expressions such as ``Decimal('1.1') + float('1.1')``
|
mixing in arithmetic expressions such as ``Decimal('1.1') + float('1.1')``
|
||||||
because the latter loses information in the process of constructing the binary
|
because the latter loses information in the process of constructing the binary
|
||||||
float. However, since existing floating point value can be converted losslessly
|
float. However, since existing floating-point value can be converted losslessly
|
||||||
to either a decimal or rational representation, it makes sense to add them to
|
to either a decimal or rational representation, it makes sense to add them to
|
||||||
the constructor and to support mixed-type comparisons.
|
the constructor and to support mixed-type comparisons.
|
||||||
|
|
||||||
|
|
|
@ -1097,12 +1097,12 @@ decimal
|
||||||
C-module and libmpdec written by Stefan Krah.
|
C-module and libmpdec written by Stefan Krah.
|
||||||
|
|
||||||
The new C version of the decimal module integrates the high speed libmpdec
|
The new C version of the decimal module integrates the high speed libmpdec
|
||||||
library for arbitrary precision correctly rounded decimal floating point
|
library for arbitrary precision correctly rounded decimal floating-point
|
||||||
arithmetic. libmpdec conforms to IBM's General Decimal Arithmetic Specification.
|
arithmetic. libmpdec conforms to IBM's General Decimal Arithmetic Specification.
|
||||||
|
|
||||||
Performance gains range from 10x for database applications to 100x for
|
Performance gains range from 10x for database applications to 100x for
|
||||||
numerically intensive applications. These numbers are expected gains
|
numerically intensive applications. These numbers are expected gains
|
||||||
for standard precisions used in decimal floating point arithmetic. Since
|
for standard precisions used in decimal floating-point arithmetic. Since
|
||||||
the precision is user configurable, the exact figures may vary. For example,
|
the precision is user configurable, the exact figures may vary. For example,
|
||||||
in integer bignum arithmetic the differences can be significantly higher.
|
in integer bignum arithmetic the differences can be significantly higher.
|
||||||
|
|
||||||
|
|
|
@ -261,7 +261,7 @@ allowed.
|
||||||
|
|
||||||
The :ref:`string formatting <formatspec>` language also now has support
|
The :ref:`string formatting <formatspec>` language also now has support
|
||||||
for the ``'_'`` option to signal the use of an underscore for a thousands
|
for the ``'_'`` option to signal the use of an underscore for a thousands
|
||||||
separator for floating point presentation types and for integer
|
separator for floating-point presentation types and for integer
|
||||||
presentation type ``'d'``. For integer presentation types ``'b'``,
|
presentation type ``'d'``. For integer presentation types ``'b'``,
|
||||||
``'o'``, ``'x'``, and ``'X'``, underscores will be inserted every 4
|
``'o'``, ``'x'``, and ``'X'``, underscores will be inserted every 4
|
||||||
digits::
|
digits::
|
||||||
|
|
|
@ -339,7 +339,7 @@ PEP 564: New Time Functions With Nanosecond Resolution
|
||||||
------------------------------------------------------
|
------------------------------------------------------
|
||||||
|
|
||||||
The resolution of clocks in modern systems can exceed the limited precision
|
The resolution of clocks in modern systems can exceed the limited precision
|
||||||
of a floating point number returned by the :func:`time.time` function
|
of a floating-point number returned by the :func:`time.time` function
|
||||||
and its variants. To avoid loss of precision, :pep:`564` adds six new
|
and its variants. To avoid loss of precision, :pep:`564` adds six new
|
||||||
"nanosecond" variants of the existing timer functions to the :mod:`time`
|
"nanosecond" variants of the existing timer functions to the :mod:`time`
|
||||||
module:
|
module:
|
||||||
|
|
|
@ -1192,7 +1192,7 @@ post-handshake authentication.
|
||||||
statistics
|
statistics
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Added :func:`statistics.fmean` as a faster, floating point variant of
|
Added :func:`statistics.fmean` as a faster, floating-point variant of
|
||||||
:func:`statistics.mean()`. (Contributed by Raymond Hettinger and
|
:func:`statistics.mean()`. (Contributed by Raymond Hettinger and
|
||||||
Steven D'Aprano in :issue:`35904`.)
|
Steven D'Aprano in :issue:`35904`.)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/* Float object interface */
|
/* Float object interface */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
PyFloatObject represents a (double precision) floating point number.
|
PyFloatObject represents a (double precision) floating-point number.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef Py_FLOATOBJECT_H
|
#ifndef Py_FLOATOBJECT_H
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
// Time formats:
|
// Time formats:
|
||||||
//
|
//
|
||||||
// * Seconds.
|
// * Seconds.
|
||||||
// * Seconds as a floating point number (C double).
|
// * Seconds as a floating-point number (C double).
|
||||||
// * Milliseconds (10^-3 seconds).
|
// * Milliseconds (10^-3 seconds).
|
||||||
// * Microseconds (10^-6 seconds).
|
// * Microseconds (10^-6 seconds).
|
||||||
// * 100 nanoseconds (10^-7 seconds), used on Windows.
|
// * 100 nanoseconds (10^-7 seconds), used on Windows.
|
||||||
|
|
|
@ -424,7 +424,7 @@ def localcontext(ctx=None, **kwargs):
|
||||||
# numbers.py for more detail.
|
# numbers.py for more detail.
|
||||||
|
|
||||||
class Decimal(object):
|
class Decimal(object):
|
||||||
"""Floating point class for decimal arithmetic."""
|
"""Floating-point class for decimal arithmetic."""
|
||||||
|
|
||||||
__slots__ = ('_exp','_int','_sign', '_is_special')
|
__slots__ = ('_exp','_int','_sign', '_is_special')
|
||||||
# Generally, the value of the Decimal instance is given by
|
# Generally, the value of the Decimal instance is given by
|
||||||
|
|
|
@ -24,7 +24,7 @@ HSV: Hue, Saturation, Value
|
||||||
__all__ = ["rgb_to_yiq","yiq_to_rgb","rgb_to_hls","hls_to_rgb",
|
__all__ = ["rgb_to_yiq","yiq_to_rgb","rgb_to_hls","hls_to_rgb",
|
||||||
"rgb_to_hsv","hsv_to_rgb"]
|
"rgb_to_hsv","hsv_to_rgb"]
|
||||||
|
|
||||||
# Some floating point constants
|
# Some floating-point constants
|
||||||
|
|
||||||
ONE_THIRD = 1.0/3.0
|
ONE_THIRD = 1.0/3.0
|
||||||
ONE_SIXTH = 1.0/6.0
|
ONE_SIXTH = 1.0/6.0
|
||||||
|
|
|
@ -47,7 +47,7 @@ SETTINGS:
|
||||||
field contains either the quotechar or the delimiter
|
field contains either the quotechar or the delimiter
|
||||||
csv.QUOTE_ALL means that quotes are always placed around fields.
|
csv.QUOTE_ALL means that quotes are always placed around fields.
|
||||||
csv.QUOTE_NONNUMERIC means that quotes are always placed around
|
csv.QUOTE_NONNUMERIC means that quotes are always placed around
|
||||||
fields which do not parse as integers or floating point
|
fields which do not parse as integers or floating-point
|
||||||
numbers.
|
numbers.
|
||||||
csv.QUOTE_STRINGS means that quotes are always placed around
|
csv.QUOTE_STRINGS means that quotes are always placed around
|
||||||
fields which are strings. Note that the Python value None
|
fields which are strings. Note that the Python value None
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"""Decimal fixed point and floating point arithmetic.
|
"""Decimal fixed-point and floating-point arithmetic.
|
||||||
|
|
||||||
This is an implementation of decimal floating point arithmetic based on
|
This is an implementation of decimal floating-point arithmetic based on
|
||||||
the General Decimal Arithmetic Specification:
|
the General Decimal Arithmetic Specification:
|
||||||
|
|
||||||
http://speleotrove.com/decimal/decarith.html
|
http://speleotrove.com/decimal/decarith.html
|
||||||
|
|
|
@ -241,7 +241,7 @@ def formatdate(timeval=None, localtime=False, usegmt=False):
|
||||||
|
|
||||||
Fri, 09 Nov 2001 01:08:47 -0000
|
Fri, 09 Nov 2001 01:08:47 -0000
|
||||||
|
|
||||||
Optional timeval if given is a floating point time value as accepted by
|
Optional timeval if given is a floating-point time value as accepted by
|
||||||
gmtime() and localtime(), otherwise the current time is used.
|
gmtime() and localtime(), otherwise the current time is used.
|
||||||
|
|
||||||
Optional localtime is a flag that when True, interprets timeval, and
|
Optional localtime is a flag that when True, interprets timeval, and
|
||||||
|
|
|
@ -234,7 +234,7 @@ def _unquote(str):
|
||||||
# header. By default, _getdate() returns the current time in the appropriate
|
# header. By default, _getdate() returns the current time in the appropriate
|
||||||
# "expires" format for a Set-Cookie header. The one optional argument is an
|
# "expires" format for a Set-Cookie header. The one optional argument is an
|
||||||
# offset from now, in seconds. For example, an offset of -3600 means "one hour
|
# offset from now, in seconds. For example, an offset of -3600 means "one hour
|
||||||
# ago". The offset may be a floating point number.
|
# ago". The offset may be a floating-point number.
|
||||||
#
|
#
|
||||||
|
|
||||||
_weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
_weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
||||||
|
|
|
@ -83,7 +83,7 @@ class Stats:
|
||||||
method now take arbitrarily many file names as arguments.
|
method now take arbitrarily many file names as arguments.
|
||||||
|
|
||||||
All the print methods now take an argument that indicates how many lines
|
All the print methods now take an argument that indicates how many lines
|
||||||
to print. If the arg is a floating point number between 0 and 1.0, then
|
to print. If the arg is a floating-point number between 0 and 1.0, then
|
||||||
it is taken as a decimal percentage of the available lines to be printed
|
it is taken as a decimal percentage of the available lines to be printed
|
||||||
(e.g., .1 means print 10% of all available lines). If it is an integer,
|
(e.g., .1 means print 10% of all available lines). If it is an integer,
|
||||||
it is taken to mean the number of lines of data that you wish to have
|
it is taken to mean the number of lines of data that you wish to have
|
||||||
|
|
|
@ -1013,7 +1013,7 @@ def _parse_args(arg_list: list[str] | None):
|
||||||
help="print a random integer between 1 and N inclusive")
|
help="print a random integer between 1 and N inclusive")
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"-f", "--float", type=float, metavar="N",
|
"-f", "--float", type=float, metavar="N",
|
||||||
help="print a random floating point number between 1 and N inclusive")
|
help="print a random floating-point number between 1 and N inclusive")
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"--test", type=int, const=10_000, nargs="?",
|
"--test", type=int, const=10_000, nargs="?",
|
||||||
help=argparse.SUPPRESS)
|
help=argparse.SUPPRESS)
|
||||||
|
|
|
@ -11,7 +11,7 @@ substituting time and sleep from built-in module time, or you can
|
||||||
implement simulated time by writing your own functions. This can
|
implement simulated time by writing your own functions. This can
|
||||||
also be used to integrate scheduling with STDWIN events; the delay
|
also be used to integrate scheduling with STDWIN events; the delay
|
||||||
function is allowed to modify the queue. Time can be expressed as
|
function is allowed to modify the queue. Time can be expressed as
|
||||||
integers or floating point numbers, as long as it is consistent.
|
integers or floating-point numbers, as long as it is consistent.
|
||||||
|
|
||||||
Events are specified by tuples (time, priority, action, argument, kwargs).
|
Events are specified by tuples (time, priority, action, argument, kwargs).
|
||||||
As in UNIX, lower priority numbers mean higher priority; in this
|
As in UNIX, lower priority numbers mean higher priority; in this
|
||||||
|
|
|
@ -11,7 +11,7 @@ Calculating averages
|
||||||
Function Description
|
Function Description
|
||||||
================== ==================================================
|
================== ==================================================
|
||||||
mean Arithmetic mean (average) of data.
|
mean Arithmetic mean (average) of data.
|
||||||
fmean Fast, floating point arithmetic mean.
|
fmean Fast, floating-point arithmetic mean.
|
||||||
geometric_mean Geometric mean of data.
|
geometric_mean Geometric mean of data.
|
||||||
harmonic_mean Harmonic mean of data.
|
harmonic_mean Harmonic mean of data.
|
||||||
median Median (middle value) of data.
|
median Median (middle value) of data.
|
||||||
|
|
|
@ -1493,7 +1493,7 @@ class FPTest(NumberTest):
|
||||||
self.assertEqual(a, b)
|
self.assertEqual(a, b)
|
||||||
else:
|
else:
|
||||||
# On alphas treating the byte swapped bit patters as
|
# On alphas treating the byte swapped bit patters as
|
||||||
# floats/doubles results in floating point exceptions
|
# floats/doubles results in floating-point exceptions
|
||||||
# => compare the 8bit string values instead
|
# => compare the 8bit string values instead
|
||||||
self.assertNotEqual(a.tobytes(), b.tobytes())
|
self.assertNotEqual(a.tobytes(), b.tobytes())
|
||||||
b.byteswap()
|
b.byteswap()
|
||||||
|
|
|
@ -717,7 +717,7 @@ class ComplexTest(unittest.TestCase):
|
||||||
def test_hash(self):
|
def test_hash(self):
|
||||||
for x in range(-30, 30):
|
for x in range(-30, 30):
|
||||||
self.assertEqual(hash(x), hash(complex(x, 0)))
|
self.assertEqual(hash(x), hash(complex(x, 0)))
|
||||||
x /= 3.0 # now check against floating point
|
x /= 3.0 # now check against floating-point
|
||||||
self.assertEqual(hash(x), hash(complex(x, 0.)))
|
self.assertEqual(hash(x), hash(complex(x, 0.)))
|
||||||
|
|
||||||
self.assertNotEqual(hash(2000005 - 1j), -1)
|
self.assertNotEqual(hash(2000005 - 1j), -1)
|
||||||
|
|
|
@ -253,7 +253,7 @@ class ArrayTestCase(unittest.TestCase):
|
||||||
class EmptyStruct(Structure):
|
class EmptyStruct(Structure):
|
||||||
_fields_ = []
|
_fields_ = []
|
||||||
|
|
||||||
obj = (EmptyStruct * 2)() # bpo37188: Floating point exception
|
obj = (EmptyStruct * 2)() # bpo37188: Floating-point exception
|
||||||
self.assertEqual(sizeof(obj), 0)
|
self.assertEqual(sizeof(obj), 0)
|
||||||
|
|
||||||
def test_empty_element_array(self):
|
def test_empty_element_array(self):
|
||||||
|
@ -261,7 +261,7 @@ class ArrayTestCase(unittest.TestCase):
|
||||||
_type_ = c_int
|
_type_ = c_int
|
||||||
_length_ = 0
|
_length_ = 0
|
||||||
|
|
||||||
obj = (EmptyArray * 2)() # bpo37188: Floating point exception
|
obj = (EmptyArray * 2)() # bpo37188: Floating-point exception
|
||||||
self.assertEqual(sizeof(obj), 0)
|
self.assertEqual(sizeof(obj), 0)
|
||||||
|
|
||||||
def test_bpo36504_signed_int_overflow(self):
|
def test_bpo36504_signed_int_overflow(self):
|
||||||
|
|
|
@ -236,7 +236,7 @@ class FaultHandlerTests(unittest.TestCase):
|
||||||
faulthandler._sigfpe()
|
faulthandler._sigfpe()
|
||||||
""",
|
""",
|
||||||
3,
|
3,
|
||||||
'Floating point exception')
|
'Floating-point exception')
|
||||||
|
|
||||||
@unittest.skipIf(_testcapi is None, 'need _testcapi')
|
@unittest.skipIf(_testcapi is None, 'need _testcapi')
|
||||||
@unittest.skipUnless(hasattr(signal, 'SIGBUS'), 'need signal.SIGBUS')
|
@unittest.skipUnless(hasattr(signal, 'SIGBUS'), 'need signal.SIGBUS')
|
||||||
|
|
|
@ -36,7 +36,7 @@ def testformat(formatstr, args, output=None, limit=None, overflowok=False):
|
||||||
# when 'limit' is specified, it determines how many characters
|
# when 'limit' is specified, it determines how many characters
|
||||||
# must match exactly; lengths must always match.
|
# must match exactly; lengths must always match.
|
||||||
# ex: limit=5, '12345678' matches '12345___'
|
# ex: limit=5, '12345678' matches '12345___'
|
||||||
# (mainly for floating point format tests for which an exact match
|
# (mainly for floating-point format tests for which an exact match
|
||||||
# can't be guaranteed due to rounding and representation errors)
|
# can't be guaranteed due to rounding and representation errors)
|
||||||
elif output and limit is not None and (
|
elif output and limit is not None and (
|
||||||
len(result)!=len(output) or result[:limit]!=output[:limit]):
|
len(result)!=len(output) or result[:limit]!=output[:limit]):
|
||||||
|
|
|
@ -828,7 +828,7 @@ class UtimeTests(unittest.TestCase):
|
||||||
return (ns * 1e-9) + 0.5e-9
|
return (ns * 1e-9) + 0.5e-9
|
||||||
|
|
||||||
def test_utime_by_indexed(self):
|
def test_utime_by_indexed(self):
|
||||||
# pass times as floating point seconds as the second indexed parameter
|
# pass times as floating-point seconds as the second indexed parameter
|
||||||
def set_time(filename, ns):
|
def set_time(filename, ns):
|
||||||
atime_ns, mtime_ns = ns
|
atime_ns, mtime_ns = ns
|
||||||
atime = self.ns_to_sec(atime_ns)
|
atime = self.ns_to_sec(atime_ns)
|
||||||
|
|
|
@ -1072,7 +1072,7 @@ class UnivariateCommonMixin:
|
||||||
def test_order_doesnt_matter(self):
|
def test_order_doesnt_matter(self):
|
||||||
# Test that the order of data points doesn't change the result.
|
# Test that the order of data points doesn't change the result.
|
||||||
|
|
||||||
# CAUTION: due to floating point rounding errors, the result actually
|
# CAUTION: due to floating-point rounding errors, the result actually
|
||||||
# may depend on the order. Consider this test representing an ideal.
|
# may depend on the order. Consider this test representing an ideal.
|
||||||
# To avoid this test failing, only test with exact values such as ints
|
# To avoid this test failing, only test with exact values such as ints
|
||||||
# or Fractions.
|
# or Fractions.
|
||||||
|
|
|
@ -228,7 +228,7 @@ def k(x):
|
||||||
""")
|
""")
|
||||||
|
|
||||||
def test_float(self):
|
def test_float(self):
|
||||||
# Floating point numbers
|
# Floating-point numbers
|
||||||
self.check_tokenize("x = 3.14159", """\
|
self.check_tokenize("x = 3.14159", """\
|
||||||
NAME 'x' (1, 0) (1, 1)
|
NAME 'x' (1, 0) (1, 1)
|
||||||
OP '=' (1, 2) (1, 3)
|
OP '=' (1, 2) (1, 3)
|
||||||
|
|
|
@ -336,7 +336,7 @@ class Condition:
|
||||||
awakened or timed out, it re-acquires the lock and returns.
|
awakened or timed out, it re-acquires the lock and returns.
|
||||||
|
|
||||||
When the timeout argument is present and not None, it should be a
|
When the timeout argument is present and not None, it should be a
|
||||||
floating point number specifying a timeout for the operation in seconds
|
floating-point number specifying a timeout for the operation in seconds
|
||||||
(or fractions thereof).
|
(or fractions thereof).
|
||||||
|
|
||||||
When the underlying lock is an RLock, it is not released using its
|
When the underlying lock is an RLock, it is not released using its
|
||||||
|
@ -646,7 +646,7 @@ class Event:
|
||||||
the optional timeout occurs.
|
the optional timeout occurs.
|
||||||
|
|
||||||
When the timeout argument is present and not None, it should be a
|
When the timeout argument is present and not None, it should be a
|
||||||
floating point number specifying a timeout for the operation in seconds
|
floating-point number specifying a timeout for the operation in seconds
|
||||||
(or fractions thereof).
|
(or fractions thereof).
|
||||||
|
|
||||||
This method returns the internal flag on exit, so it will always return
|
This method returns the internal flag on exit, so it will always return
|
||||||
|
@ -1059,7 +1059,7 @@ class Thread:
|
||||||
or until the optional timeout occurs.
|
or until the optional timeout occurs.
|
||||||
|
|
||||||
When the timeout argument is present and not None, it should be a
|
When the timeout argument is present and not None, it should be a
|
||||||
floating point number specifying a timeout for the operation in seconds
|
floating-point number specifying a timeout for the operation in seconds
|
||||||
(or fractions thereof). As join() always returns None, you must call
|
(or fractions thereof). As join() always returns None, you must call
|
||||||
is_alive() after join() to decide whether a timeout happened -- if the
|
is_alive() after join() to decide whether a timeout happened -- if the
|
||||||
thread is still alive, the join() call timed out.
|
thread is still alive, the join() call timed out.
|
||||||
|
|
|
@ -357,7 +357,7 @@ def askinteger(title, prompt, **kw):
|
||||||
|
|
||||||
|
|
||||||
class _QueryFloat(_QueryDialog):
|
class _QueryFloat(_QueryDialog):
|
||||||
errormessage = "Not a floating point value."
|
errormessage = "Not a floating-point value."
|
||||||
|
|
||||||
def getresult(self):
|
def getresult(self):
|
||||||
return self.getdouble(self.entry.get())
|
return self.getdouble(self.entry.get())
|
||||||
|
|
|
@ -4238,7 +4238,7 @@ harmless "malloc can't allocate region" messages spewed by test_decimal.
|
||||||
.. nonce: KKsNOV
|
.. nonce: KKsNOV
|
||||||
.. section: Tests
|
.. section: Tests
|
||||||
|
|
||||||
Fixed floating point precision issue in turtle tests.
|
Fixed floating-point precision issue in turtle tests.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -1054,7 +1054,7 @@ Patch by Victor Stinner.
|
||||||
.. nonce: ajJjkh
|
.. nonce: ajJjkh
|
||||||
.. section: Build
|
.. section: Build
|
||||||
|
|
||||||
Building Python now requires support for floating point Not-a-Number (NaN):
|
Building Python now requires support for floating-point Not-a-Number (NaN):
|
||||||
remove the ``Py_NO_NAN`` macro. Patch by Victor Stinner.
|
remove the ``Py_NO_NAN`` macro. Patch by Victor Stinner.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -1401,7 +1401,7 @@ Christian's container image ``quay.io/tiran/cpython_autoconf:269``.
|
||||||
.. nonce: fry4aK
|
.. nonce: fry4aK
|
||||||
.. section: Build
|
.. section: Build
|
||||||
|
|
||||||
Building Python now requires support of IEEE 754 floating point numbers.
|
Building Python now requires support of IEEE 754 floating-point numbers.
|
||||||
Patch by Victor Stinner.
|
Patch by Victor Stinner.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -1315,7 +1315,7 @@ Hamdan.
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Adjust ``logging.LogRecord`` to use ``time.time_ns()`` and fix minor bug
|
Adjust ``logging.LogRecord`` to use ``time.time_ns()`` and fix minor bug
|
||||||
related to floating point math.
|
related to floating-point math.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -5468,7 +5468,7 @@ All resources are now allowed when tests are not run by regrtest.py.
|
||||||
.. section: Tests
|
.. section: Tests
|
||||||
|
|
||||||
Fix pystone micro-benchmark: use floor division instead of true division to
|
Fix pystone micro-benchmark: use floor division instead of true division to
|
||||||
benchmark integers instead of floating point numbers. Set pystone version to
|
benchmark integers instead of floating-point numbers. Set pystone version to
|
||||||
1.2. Patch written by Lennart Regebro.
|
1.2. Patch written by Lennart Regebro.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -224,7 +224,7 @@ positives from posix, socket, time, test_io, and test_faulthandler.
|
||||||
.. nonce: 9vMWSP
|
.. nonce: 9vMWSP
|
||||||
.. section: Core and Builtins
|
.. section: Core and Builtins
|
||||||
|
|
||||||
Fix an assertion error in :func:`format` in debug build for floating point
|
Fix an assertion error in :func:`format` in debug build for floating-point
|
||||||
formatting with "n" format, zero padding and small width. Release build is
|
formatting with "n" format, zero padding and small width. Release build is
|
||||||
not impacted. Patch by Karthikeyan Singaravelan.
|
not impacted. Patch by Karthikeyan Singaravelan.
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,7 @@ the mean and standard deviation of measurement data as single entity.
|
||||||
.. nonce: V88MCD
|
.. nonce: V88MCD
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Added statistics.fmean() as a faster, floating point variant of the existing
|
Added statistics.fmean() as a faster, floating-point variant of the existing
|
||||||
mean() function.
|
mean() function.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -299,7 +299,7 @@ Check the error from the system's underlying ``crypt`` or ``crypt_r``.
|
||||||
.. section: Core and Builtins
|
.. section: Core and Builtins
|
||||||
|
|
||||||
On FreeBSD, Python no longer calls ``fedisableexcept()`` at startup to
|
On FreeBSD, Python no longer calls ``fedisableexcept()`` at startup to
|
||||||
control the floating point control mode. The call became useless since
|
control the floating-point control mode. The call became useless since
|
||||||
FreeBSD 6: it became the default mode.
|
FreeBSD 6: it became the default mode.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -186,7 +186,7 @@ _testfunc_array_in_struct3B_set_defaults(void)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test3C struct tests the MAX_STRUCT_SIZE 32. Structs containing arrays of up
|
* Test3C struct tests the MAX_STRUCT_SIZE 32. Structs containing arrays of up
|
||||||
* to four floating point types are passed in registers on Arm platforms.
|
* to four floating-point types are passed in registers on Arm platforms.
|
||||||
* This struct is used for within bounds test on Arm platfroms and for an
|
* This struct is used for within bounds test on Arm platfroms and for an
|
||||||
* out-of-bounds tests for platfroms where MAX_STRUCT_SIZE is less than 32.
|
* out-of-bounds tests for platfroms where MAX_STRUCT_SIZE is less than 32.
|
||||||
* See gh-110190.
|
* See gh-110190.
|
||||||
|
@ -210,7 +210,7 @@ _testfunc_array_in_struct3C_set_defaults(void)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test3D struct tests the MAX_STRUCT_SIZE 64. Structs containing arrays of up
|
* Test3D struct tests the MAX_STRUCT_SIZE 64. Structs containing arrays of up
|
||||||
* to eight floating point types are passed in registers on PPC64LE platforms.
|
* to eight floating-point types are passed in registers on PPC64LE platforms.
|
||||||
* This struct is used for within bounds test on PPC64LE platfroms and for an
|
* This struct is used for within bounds test on PPC64LE platfroms and for an
|
||||||
* out-of-bounds tests for platfroms where MAX_STRUCT_SIZE is less than 64.
|
* out-of-bounds tests for platfroms where MAX_STRUCT_SIZE is less than 64.
|
||||||
* See gh-110190.
|
* See gh-110190.
|
||||||
|
|
|
@ -52,7 +52,7 @@ module _locale
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ed98569b726feada]*/
|
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ed98569b726feada]*/
|
||||||
|
|
||||||
/* support functions for formatting floating point numbers */
|
/* support functions for formatting floating-point numbers */
|
||||||
|
|
||||||
/* the grouping is terminated by either 0 or CHAR_MAX */
|
/* the grouping is terminated by either 0 or CHAR_MAX */
|
||||||
static PyObject*
|
static PyObject*
|
||||||
|
|
|
@ -281,7 +281,7 @@ get_size_t(_structmodulestate *state, PyObject *v, size_t *p)
|
||||||
#define RANGE_ERROR(state, f, flag) return _range_error(state, f, flag)
|
#define RANGE_ERROR(state, f, flag) return _range_error(state, f, flag)
|
||||||
|
|
||||||
|
|
||||||
/* Floating point helpers */
|
/* Floating-point helpers */
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
unpack_halffloat(const char *p, /* start of 2-byte string */
|
unpack_halffloat(const char *p, /* start of 2-byte string */
|
||||||
|
|
|
@ -2863,7 +2863,7 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
|
|
||||||
PyDoc_STRVAR(module_doc,
|
PyDoc_STRVAR(module_doc,
|
||||||
"This module defines an object type which can efficiently represent\n\
|
"This module defines an object type which can efficiently represent\n\
|
||||||
an array of basic values: characters, integers, floating point\n\
|
an array of basic values: characters, integers, floating-point\n\
|
||||||
numbers. Arrays are sequence types and behave very much like lists,\n\
|
numbers. Arrays are sequence types and behave very much like lists,\n\
|
||||||
except that the type of objects stored in them is constrained.\n");
|
except that the type of objects stored in them is constrained.\n");
|
||||||
|
|
||||||
|
@ -2891,8 +2891,8 @@ The following type codes are defined:\n\
|
||||||
'L' unsigned integer 4\n\
|
'L' unsigned integer 4\n\
|
||||||
'q' signed integer 8 (see note)\n\
|
'q' signed integer 8 (see note)\n\
|
||||||
'Q' unsigned integer 8 (see note)\n\
|
'Q' unsigned integer 8 (see note)\n\
|
||||||
'f' floating point 4\n\
|
'f' floating-point 4\n\
|
||||||
'd' floating point 8\n\
|
'd' floating-point 8\n\
|
||||||
\n\
|
\n\
|
||||||
NOTE: The 'u' typecode corresponds to Python's unicode character. On\n\
|
NOTE: The 'u' typecode corresponds to Python's unicode character. On\n\
|
||||||
narrow builds this is 2-bytes on wide builds this is 4-bytes.\n\
|
narrow builds this is 2-bytes on wide builds this is 4-bytes.\n\
|
||||||
|
|
|
@ -34,9 +34,9 @@ PyDoc_STRVAR(math_fsum__doc__,
|
||||||
"fsum($module, seq, /)\n"
|
"fsum($module, seq, /)\n"
|
||||||
"--\n"
|
"--\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Return an accurate floating point sum of values in the iterable seq.\n"
|
"Return an accurate floating-point sum of values in the iterable seq.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Assumes IEEE-754 floating point arithmetic.");
|
"Assumes IEEE-754 floating-point arithmetic.");
|
||||||
|
|
||||||
#define MATH_FSUM_METHODDEF \
|
#define MATH_FSUM_METHODDEF \
|
||||||
{"fsum", (PyCFunction)math_fsum, METH_O, math_fsum__doc__},
|
{"fsum", (PyCFunction)math_fsum, METH_O, math_fsum__doc__},
|
||||||
|
@ -610,7 +610,7 @@ PyDoc_STRVAR(math_isclose__doc__,
|
||||||
"isclose($module, /, a, b, *, rel_tol=1e-09, abs_tol=0.0)\n"
|
"isclose($module, /, a, b, *, rel_tol=1e-09, abs_tol=0.0)\n"
|
||||||
"--\n"
|
"--\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Determine whether two floating point numbers are close in value.\n"
|
"Determine whether two floating-point numbers are close in value.\n"
|
||||||
"\n"
|
"\n"
|
||||||
" rel_tol\n"
|
" rel_tol\n"
|
||||||
" maximum difference for being considered \"close\", relative to the\n"
|
" maximum difference for being considered \"close\", relative to the\n"
|
||||||
|
@ -1011,4 +1011,4 @@ math_ulp(PyObject *module, PyObject *arg)
|
||||||
exit:
|
exit:
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
/*[clinic end generated code: output=7d03f84f77342496 input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=755da3b1dbd9e45f input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -6348,7 +6348,7 @@ PyDoc_STRVAR(os_times__doc__,
|
||||||
"\n"
|
"\n"
|
||||||
"The object returned behaves like a named tuple with these fields:\n"
|
"The object returned behaves like a named tuple with these fields:\n"
|
||||||
" (utime, stime, cutime, cstime, elapsed_time)\n"
|
" (utime, stime, cutime, cstime, elapsed_time)\n"
|
||||||
"All fields are floating point numbers.");
|
"All fields are floating-point numbers.");
|
||||||
|
|
||||||
#define OS_TIMES_METHODDEF \
|
#define OS_TIMES_METHODDEF \
|
||||||
{"times", (PyCFunction)os_times, METH_NOARGS, os_times__doc__},
|
{"times", (PyCFunction)os_times, METH_NOARGS, os_times__doc__},
|
||||||
|
@ -12837,4 +12837,4 @@ os__create_environ(PyObject *module, PyObject *Py_UNUSED(ignored))
|
||||||
#ifndef OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF
|
#ifndef OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF
|
||||||
#define OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF
|
#define OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF
|
||||||
#endif /* !defined(OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF) */
|
#endif /* !defined(OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF) */
|
||||||
/*[clinic end generated code: output=31dc3bb3cba924d0 input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=2fafa0d2814948f8 input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -26,7 +26,7 @@ PyDoc_STRVAR(select_select__doc__,
|
||||||
"gotten from a fileno() method call on one of those.\n"
|
"gotten from a fileno() method call on one of those.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The optional 4th argument specifies a timeout in seconds; it may be\n"
|
"The optional 4th argument specifies a timeout in seconds; it may be\n"
|
||||||
"a floating point number to specify fractions of seconds. If it is absent\n"
|
"a floating-point number to specify fractions of seconds. If it is absent\n"
|
||||||
"or None, the call will never time out.\n"
|
"or None, the call will never time out.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The return value is a tuple of three lists corresponding to the first three\n"
|
"The return value is a tuple of three lists corresponding to the first three\n"
|
||||||
|
@ -1360,4 +1360,4 @@ exit:
|
||||||
#ifndef SELECT_KQUEUE_CONTROL_METHODDEF
|
#ifndef SELECT_KQUEUE_CONTROL_METHODDEF
|
||||||
#define SELECT_KQUEUE_CONTROL_METHODDEF
|
#define SELECT_KQUEUE_CONTROL_METHODDEF
|
||||||
#endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */
|
#endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */
|
||||||
/*[clinic end generated code: output=f31e724f492225b1 input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=f99427b75cbe6d44 input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -597,7 +597,7 @@ PyDoc_STRVAR(signal_sigtimedwait__doc__,
|
||||||
"\n"
|
"\n"
|
||||||
"Like sigwaitinfo(), but with a timeout.\n"
|
"Like sigwaitinfo(), but with a timeout.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The timeout is specified in seconds, with floating point numbers allowed.");
|
"The timeout is specified in seconds, with floating-point numbers allowed.");
|
||||||
|
|
||||||
#define SIGNAL_SIGTIMEDWAIT_METHODDEF \
|
#define SIGNAL_SIGTIMEDWAIT_METHODDEF \
|
||||||
{"sigtimedwait", _PyCFunction_CAST(signal_sigtimedwait), METH_FASTCALL, signal_sigtimedwait__doc__},
|
{"sigtimedwait", _PyCFunction_CAST(signal_sigtimedwait), METH_FASTCALL, signal_sigtimedwait__doc__},
|
||||||
|
@ -776,4 +776,4 @@ exit:
|
||||||
#ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
|
#ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
|
||||||
#define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
|
#define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
|
||||||
#endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */
|
#endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */
|
||||||
/*[clinic end generated code: output=1c11c1b6f12f26be input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=6d8e17a32cef668f input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -75,7 +75,7 @@ static fault_handler_t faulthandler_handlers[] = {
|
||||||
#ifdef SIGILL
|
#ifdef SIGILL
|
||||||
{SIGILL, 0, "Illegal instruction", },
|
{SIGILL, 0, "Illegal instruction", },
|
||||||
#endif
|
#endif
|
||||||
{SIGFPE, 0, "Floating point exception", },
|
{SIGFPE, 0, "Floating-point exception", },
|
||||||
{SIGABRT, 0, "Aborted", },
|
{SIGABRT, 0, "Aborted", },
|
||||||
/* define SIGSEGV at the end to make it the default choice if searching the
|
/* define SIGSEGV at the end to make it the default choice if searching the
|
||||||
handler fails in faulthandler_fatal_error() */
|
handler fails in faulthandler_fatal_error() */
|
||||||
|
|
|
@ -107,7 +107,7 @@ typedef struct{ double hi; double lo; } DoubleLength;
|
||||||
static DoubleLength
|
static DoubleLength
|
||||||
dl_fast_sum(double a, double b)
|
dl_fast_sum(double a, double b)
|
||||||
{
|
{
|
||||||
/* Algorithm 1.1. Compensated summation of two floating point numbers. */
|
/* Algorithm 1.1. Compensated summation of two floating-point numbers. */
|
||||||
assert(fabs(a) >= fabs(b));
|
assert(fabs(a) >= fabs(b));
|
||||||
double x = a + b;
|
double x = a + b;
|
||||||
double y = (a - x) + b;
|
double y = (a - x) + b;
|
||||||
|
@ -1354,14 +1354,14 @@ math.fsum
|
||||||
seq: object
|
seq: object
|
||||||
/
|
/
|
||||||
|
|
||||||
Return an accurate floating point sum of values in the iterable seq.
|
Return an accurate floating-point sum of values in the iterable seq.
|
||||||
|
|
||||||
Assumes IEEE-754 floating point arithmetic.
|
Assumes IEEE-754 floating-point arithmetic.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
math_fsum(PyObject *module, PyObject *seq)
|
math_fsum(PyObject *module, PyObject *seq)
|
||||||
/*[clinic end generated code: output=ba5c672b87fe34fc input=c51b7d8caf6f6e82]*/
|
/*[clinic end generated code: output=ba5c672b87fe34fc input=4506244ded6057dc]*/
|
||||||
{
|
{
|
||||||
PyObject *item, *iter, *sum = NULL;
|
PyObject *item, *iter, *sum = NULL;
|
||||||
Py_ssize_t i, j, n = 0, m = NUM_PARTIALS;
|
Py_ssize_t i, j, n = 0, m = NUM_PARTIALS;
|
||||||
|
@ -2453,7 +2453,7 @@ Since lo**2 is less than 1/2 ulp(csum), we have csum+lo*lo == csum.
|
||||||
To minimize loss of information during the accumulation of fractional
|
To minimize loss of information during the accumulation of fractional
|
||||||
values, each term has a separate accumulator. This also breaks up
|
values, each term has a separate accumulator. This also breaks up
|
||||||
sequential dependencies in the inner loop so the CPU can maximize
|
sequential dependencies in the inner loop so the CPU can maximize
|
||||||
floating point throughput. [4] On an Apple M1 Max, hypot(*vec)
|
floating-point throughput. [4] On an Apple M1 Max, hypot(*vec)
|
||||||
takes only 3.33 µsec when len(vec) == 1000.
|
takes only 3.33 µsec when len(vec) == 1000.
|
||||||
|
|
||||||
The square root differential correction is needed because a
|
The square root differential correction is needed because a
|
||||||
|
@ -3136,7 +3136,7 @@ math.isclose -> bool
|
||||||
maximum difference for being considered "close", regardless of the
|
maximum difference for being considered "close", regardless of the
|
||||||
magnitude of the input values
|
magnitude of the input values
|
||||||
|
|
||||||
Determine whether two floating point numbers are close in value.
|
Determine whether two floating-point numbers are close in value.
|
||||||
|
|
||||||
Return True if a is close in value to b, and False otherwise.
|
Return True if a is close in value to b, and False otherwise.
|
||||||
|
|
||||||
|
@ -3151,7 +3151,7 @@ only close to themselves.
|
||||||
static int
|
static int
|
||||||
math_isclose_impl(PyObject *module, double a, double b, double rel_tol,
|
math_isclose_impl(PyObject *module, double a, double b, double rel_tol,
|
||||||
double abs_tol)
|
double abs_tol)
|
||||||
/*[clinic end generated code: output=b73070207511952d input=f28671871ea5bfba]*/
|
/*[clinic end generated code: output=b73070207511952d input=12d41764468bfdb8]*/
|
||||||
{
|
{
|
||||||
double diff = 0.0;
|
double diff = 0.0;
|
||||||
|
|
||||||
|
|
|
@ -10585,12 +10585,12 @@ Return a collection containing process timing information.
|
||||||
|
|
||||||
The object returned behaves like a named tuple with these fields:
|
The object returned behaves like a named tuple with these fields:
|
||||||
(utime, stime, cutime, cstime, elapsed_time)
|
(utime, stime, cutime, cstime, elapsed_time)
|
||||||
All fields are floating point numbers.
|
All fields are floating-point numbers.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
os_times_impl(PyObject *module)
|
os_times_impl(PyObject *module)
|
||||||
/*[clinic end generated code: output=35f640503557d32a input=2bf9df3d6ab2e48b]*/
|
/*[clinic end generated code: output=35f640503557d32a input=8dbfe33a2dcc3df3]*/
|
||||||
{
|
{
|
||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
FILETIME create, exit, kernel, user;
|
FILETIME create, exit, kernel, user;
|
||||||
|
|
|
@ -262,7 +262,7 @@ A file descriptor is either a socket or file object, or a small integer
|
||||||
gotten from a fileno() method call on one of those.
|
gotten from a fileno() method call on one of those.
|
||||||
|
|
||||||
The optional 4th argument specifies a timeout in seconds; it may be
|
The optional 4th argument specifies a timeout in seconds; it may be
|
||||||
a floating point number to specify fractions of seconds. If it is absent
|
a floating-point number to specify fractions of seconds. If it is absent
|
||||||
or None, the call will never time out.
|
or None, the call will never time out.
|
||||||
|
|
||||||
The return value is a tuple of three lists corresponding to the first three
|
The return value is a tuple of three lists corresponding to the first three
|
||||||
|
@ -277,7 +277,7 @@ descriptors can be used.
|
||||||
static PyObject *
|
static PyObject *
|
||||||
select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
|
select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
|
||||||
PyObject *xlist, PyObject *timeout_obj)
|
PyObject *xlist, PyObject *timeout_obj)
|
||||||
/*[clinic end generated code: output=2b3cfa824f7ae4cf input=e467f5d68033de00]*/
|
/*[clinic end generated code: output=2b3cfa824f7ae4cf input=1199d5e101abca4a]*/
|
||||||
{
|
{
|
||||||
#ifdef SELECT_USES_HEAP
|
#ifdef SELECT_USES_HEAP
|
||||||
pylist *rfd2obj, *wfd2obj, *efd2obj;
|
pylist *rfd2obj, *wfd2obj, *efd2obj;
|
||||||
|
|
|
@ -638,7 +638,7 @@ signal_strsignal_impl(PyObject *module, int signalnum)
|
||||||
res = "Aborted";
|
res = "Aborted";
|
||||||
break;
|
break;
|
||||||
case SIGFPE:
|
case SIGFPE:
|
||||||
res = "Floating point exception";
|
res = "Floating-point exception";
|
||||||
break;
|
break;
|
||||||
case SIGSEGV:
|
case SIGSEGV:
|
||||||
res = "Segmentation fault";
|
res = "Segmentation fault";
|
||||||
|
@ -1199,13 +1199,13 @@ signal.sigtimedwait
|
||||||
|
|
||||||
Like sigwaitinfo(), but with a timeout.
|
Like sigwaitinfo(), but with a timeout.
|
||||||
|
|
||||||
The timeout is specified in seconds, with floating point numbers allowed.
|
The timeout is specified in seconds, with floating-point numbers allowed.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
|
signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
|
||||||
PyObject *timeout_obj)
|
PyObject *timeout_obj)
|
||||||
/*[clinic end generated code: output=59c8971e8ae18a64 input=87fd39237cf0b7ba]*/
|
/*[clinic end generated code: output=59c8971e8ae18a64 input=955773219c1596cd]*/
|
||||||
{
|
{
|
||||||
PyTime_t timeout;
|
PyTime_t timeout;
|
||||||
if (_PyTime_FromSecondsObject(&timeout,
|
if (_PyTime_FromSecondsObject(&timeout,
|
||||||
|
|
|
@ -116,7 +116,7 @@ time_time(PyObject *self, PyObject *unused)
|
||||||
|
|
||||||
|
|
||||||
PyDoc_STRVAR(time_doc,
|
PyDoc_STRVAR(time_doc,
|
||||||
"time() -> floating point number\n\
|
"time() -> floating-point number\n\
|
||||||
\n\
|
\n\
|
||||||
Return the current time in seconds since the Epoch.\n\
|
Return the current time in seconds since the Epoch.\n\
|
||||||
Fractions of a second may be present if the system clock provides them.");
|
Fractions of a second may be present if the system clock provides them.");
|
||||||
|
@ -350,7 +350,7 @@ time_clock_getres(PyObject *self, PyObject *args)
|
||||||
}
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(clock_getres_doc,
|
PyDoc_STRVAR(clock_getres_doc,
|
||||||
"clock_getres(clk_id) -> floating point number\n\
|
"clock_getres(clk_id) -> floating-point number\n\
|
||||||
\n\
|
\n\
|
||||||
Return the resolution (precision) of the specified clock clk_id.");
|
Return the resolution (precision) of the specified clock clk_id.");
|
||||||
|
|
||||||
|
@ -413,7 +413,7 @@ PyDoc_STRVAR(sleep_doc,
|
||||||
"sleep(seconds)\n\
|
"sleep(seconds)\n\
|
||||||
\n\
|
\n\
|
||||||
Delay execution for a given number of seconds. The argument may be\n\
|
Delay execution for a given number of seconds. The argument may be\n\
|
||||||
a floating point number for subsecond precision.");
|
a floating-point number for subsecond precision.");
|
||||||
|
|
||||||
static PyStructSequence_Field struct_time_type_fields[] = {
|
static PyStructSequence_Field struct_time_type_fields[] = {
|
||||||
{"tm_year", "year, for example, 1993"},
|
{"tm_year", "year, for example, 1993"},
|
||||||
|
@ -1104,7 +1104,7 @@ time_mktime(PyObject *module, PyObject *tm_tuple)
|
||||||
}
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(mktime_doc,
|
PyDoc_STRVAR(mktime_doc,
|
||||||
"mktime(tuple) -> floating point number\n\
|
"mktime(tuple) -> floating-point number\n\
|
||||||
\n\
|
\n\
|
||||||
Convert a time tuple in local time to seconds since the Epoch.\n\
|
Convert a time tuple in local time to seconds since the Epoch.\n\
|
||||||
Note that mktime(gmtime(0)) will not generally return zero for most\n\
|
Note that mktime(gmtime(0)) will not generally return zero for most\n\
|
||||||
|
@ -1902,7 +1902,7 @@ PyDoc_STRVAR(module_doc,
|
||||||
\n\
|
\n\
|
||||||
There are two standard representations of time. One is the number\n\
|
There are two standard representations of time. One is the number\n\
|
||||||
of seconds since the Epoch, in UTC (a.k.a. GMT). It may be an integer\n\
|
of seconds since the Epoch, in UTC (a.k.a. GMT). It may be an integer\n\
|
||||||
or a floating point number (to represent fractions of seconds).\n\
|
or a floating-point number (to represent fractions of seconds).\n\
|
||||||
The epoch is the point where the time starts, the return value of time.gmtime(0).\n\
|
The epoch is the point where the time starts, the return value of time.gmtime(0).\n\
|
||||||
It is January 1, 1970, 00:00:00 (UTC) on all platforms.\n\
|
It is January 1, 1970, 00:00:00 (UTC) on all platforms.\n\
|
||||||
\n\
|
\n\
|
||||||
|
|
|
@ -197,7 +197,7 @@ PyDoc_STRVAR(float_new__doc__,
|
||||||
"float(x=0, /)\n"
|
"float(x=0, /)\n"
|
||||||
"--\n"
|
"--\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Convert a string or number to a floating point number, if possible.");
|
"Convert a string or number to a floating-point number, if possible.");
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
float_new_impl(PyTypeObject *type, PyObject *x);
|
float_new_impl(PyTypeObject *type, PyObject *x);
|
||||||
|
@ -265,7 +265,7 @@ PyDoc_STRVAR(float___getformat____doc__,
|
||||||
"It exists mainly to be used in Python\'s test suite.\n"
|
"It exists mainly to be used in Python\'s test suite.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"This function returns whichever of \'unknown\', \'IEEE, big-endian\' or \'IEEE,\n"
|
"This function returns whichever of \'unknown\', \'IEEE, big-endian\' or \'IEEE,\n"
|
||||||
"little-endian\' best describes the format of floating point numbers used by the\n"
|
"little-endian\' best describes the format of floating-point numbers used by the\n"
|
||||||
"C type named by typestr.");
|
"C type named by typestr.");
|
||||||
|
|
||||||
#define FLOAT___GETFORMAT___METHODDEF \
|
#define FLOAT___GETFORMAT___METHODDEF \
|
||||||
|
@ -327,4 +327,4 @@ float___format__(PyObject *self, PyObject *arg)
|
||||||
exit:
|
exit:
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
/*[clinic end generated code: output=b9c8a1b6759ca073 input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=366cea9463cc5bf6 input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -3287,7 +3287,7 @@ SimpleExtendsException(PyExc_Exception, ArithmeticError,
|
||||||
* FloatingPointError extends ArithmeticError
|
* FloatingPointError extends ArithmeticError
|
||||||
*/
|
*/
|
||||||
SimpleExtendsException(PyExc_ArithmeticError, FloatingPointError,
|
SimpleExtendsException(PyExc_ArithmeticError, FloatingPointError,
|
||||||
"Floating point operation failed.");
|
"Floating-point operation failed.");
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1602,12 +1602,12 @@ float.__new__ as float_new
|
||||||
x: object(c_default="NULL") = 0
|
x: object(c_default="NULL") = 0
|
||||||
/
|
/
|
||||||
|
|
||||||
Convert a string or number to a floating point number, if possible.
|
Convert a string or number to a floating-point number, if possible.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
float_new_impl(PyTypeObject *type, PyObject *x)
|
float_new_impl(PyTypeObject *type, PyObject *x)
|
||||||
/*[clinic end generated code: output=ccf1e8dc460ba6ba input=f43661b7de03e9d8]*/
|
/*[clinic end generated code: output=ccf1e8dc460ba6ba input=55909f888aa0c8a6]*/
|
||||||
{
|
{
|
||||||
if (type != &PyFloat_Type) {
|
if (type != &PyFloat_Type) {
|
||||||
if (x == NULL) {
|
if (x == NULL) {
|
||||||
|
@ -1733,13 +1733,13 @@ You probably don't want to use this function.
|
||||||
It exists mainly to be used in Python's test suite.
|
It exists mainly to be used in Python's test suite.
|
||||||
|
|
||||||
This function returns whichever of 'unknown', 'IEEE, big-endian' or 'IEEE,
|
This function returns whichever of 'unknown', 'IEEE, big-endian' or 'IEEE,
|
||||||
little-endian' best describes the format of floating point numbers used by the
|
little-endian' best describes the format of floating-point numbers used by the
|
||||||
C type named by typestr.
|
C type named by typestr.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
float___getformat___impl(PyTypeObject *type, const char *typestr)
|
float___getformat___impl(PyTypeObject *type, const char *typestr)
|
||||||
/*[clinic end generated code: output=2bfb987228cc9628 input=d5a52600f835ad67]*/
|
/*[clinic end generated code: output=2bfb987228cc9628 input=90d5e246409a246e]*/
|
||||||
{
|
{
|
||||||
float_format_type r;
|
float_format_type r;
|
||||||
|
|
||||||
|
@ -1926,7 +1926,7 @@ _init_global_state(void)
|
||||||
float_format_type detected_double_format, detected_float_format;
|
float_format_type detected_double_format, detected_float_format;
|
||||||
|
|
||||||
/* We attempt to determine if this machine is using IEEE
|
/* We attempt to determine if this machine is using IEEE
|
||||||
floating point formats by peering at the bits of some
|
floating-point formats by peering at the bits of some
|
||||||
carefully chosen values. If it looks like we are on an
|
carefully chosen values. If it looks like we are on an
|
||||||
IEEE platform, the float packing/unpacking routines can
|
IEEE platform, the float packing/unpacking routines can
|
||||||
just copy bits, if not they resort to arithmetic & shifts
|
just copy bits, if not they resort to arithmetic & shifts
|
||||||
|
|
|
@ -6545,7 +6545,7 @@ PyDoc_STRVAR(long_doc,
|
||||||
int(x, base=10) -> integer\n\
|
int(x, base=10) -> integer\n\
|
||||||
\n\
|
\n\
|
||||||
Convert a number or string to an integer, or return 0 if no arguments\n\
|
Convert a number or string to an integer, or return 0 if no arguments\n\
|
||||||
are given. If x is a number, return x.__int__(). For floating point\n\
|
are given. If x is a number, return x.__int__(). For floating-point\n\
|
||||||
numbers, this truncates towards zero.\n\
|
numbers, this truncates towards zero.\n\
|
||||||
\n\
|
\n\
|
||||||
If x is not a number or if base is given, then x must be a string,\n\
|
If x is not a number or if base is given, then x must be a string,\n\
|
||||||
|
|
|
@ -884,7 +884,7 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t
|
||||||
return MAKE_TOKEN(ERRORTOKEN);
|
return MAKE_TOKEN(ERRORTOKEN);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
/* Accept floating point numbers. */
|
/* Accept floating-point numbers. */
|
||||||
if (c == '.') {
|
if (c == '.') {
|
||||||
c = tok_nextc(tok);
|
c = tok_nextc(tok);
|
||||||
fraction:
|
fraction:
|
||||||
|
|
|
@ -1927,7 +1927,7 @@ machine architecture issues.\n\
|
||||||
Not all Python object types are supported; in general, only objects\n\
|
Not all Python object types are supported; in general, only objects\n\
|
||||||
whose value is independent from a particular invocation of Python can be\n\
|
whose value is independent from a particular invocation of Python can be\n\
|
||||||
written and read by this module. The following types are supported:\n\
|
written and read by this module. The following types are supported:\n\
|
||||||
None, integers, floating point numbers, strings, bytes, bytearrays,\n\
|
None, integers, floating-point numbers, strings, bytes, bytearrays,\n\
|
||||||
tuples, lists, sets, dictionaries, and code objects, where it\n\
|
tuples, lists, sets, dictionaries, and code objects, where it\n\
|
||||||
should be understood that tuples, lists and dictionaries are only\n\
|
should be understood that tuples, lists and dictionaries are only\n\
|
||||||
supported as long as the values contained therein are themselves\n\
|
supported as long as the values contained therein are themselves\n\
|
||||||
|
@ -1938,7 +1938,7 @@ Variables:\n\
|
||||||
\n\
|
\n\
|
||||||
version -- indicates the format that the module uses. Version 0 is the\n\
|
version -- indicates the format that the module uses. Version 0 is the\n\
|
||||||
historical format, version 1 shares interned strings and version 2\n\
|
historical format, version 1 shares interned strings and version 2\n\
|
||||||
uses a binary format for floating point numbers.\n\
|
uses a binary format for floating-point numbers.\n\
|
||||||
Version 3 shares common object references (New in version 3.4).\n\
|
Version 3 shares common object references (New in version 3.4).\n\
|
||||||
\n\
|
\n\
|
||||||
Functions:\n\
|
Functions:\n\
|
||||||
|
|
Loading…
Reference in New Issue