summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorZhikang Yan <2951256653@qq.com>2024-11-04 04:08:15 (GMT)
committerGitHub <noreply@github.com>2024-11-04 04:08:15 (GMT)
commit081706f873b7d1a10b27016a9ed350b20c719709 (patch)
tree83a7c37c31ee5208d197f5c18353d6276a9dbbf4 /Doc/library
parent9441993f272f42e4a97d90616ec629a11c06aa3a (diff)
downloadcpython-081706f873b7d1a10b27016a9ed350b20c719709.zip
cpython-081706f873b7d1a10b27016a9ed350b20c719709.tar.gz
cpython-081706f873b7d1a10b27016a9ed350b20c719709.tar.bz2
gh-126165: Improve docs of function `math.isclose` (#126215)
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com> Co-authored-by: Carol Willing <carolcode@willingconsulting.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/cmath.rst18
-rw-r--r--Doc/library/math.rst18
2 files changed, 20 insertions, 16 deletions
diff --git a/Doc/library/cmath.rst b/Doc/library/cmath.rst
index 381a833..f122e36 100644
--- a/Doc/library/cmath.rst
+++ b/Doc/library/cmath.rst
@@ -221,19 +221,21 @@ Classification functions
``False`` otherwise.
Whether or not two values are considered close is determined according to
- given absolute and relative tolerances.
+ given absolute and relative tolerances. If no errors occur, the result will
+ be: ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``.
*rel_tol* is the relative tolerance -- it is the maximum allowed difference
between *a* and *b*, relative to the larger absolute value of *a* or *b*.
For example, to set a tolerance of 5%, pass ``rel_tol=0.05``. The default
tolerance is ``1e-09``, which assures that the two values are the same
- within about 9 decimal digits. *rel_tol* must be greater than zero.
-
- *abs_tol* is the minimum absolute tolerance -- useful for comparisons near
- zero. *abs_tol* must be at least zero.
-
- If no errors occur, the result will be:
- ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``.
+ within about 9 decimal digits. *rel_tol* must be nonnegative and less
+ than ``1.0``.
+
+ *abs_tol* is the absolute tolerance; it defaults to ``0.0`` and it must be
+ nonnegative. When comparing ``x`` to ``0.0``, ``isclose(x, 0)`` is computed
+ as ``abs(x) <= rel_tol * abs(x)``, which is ``False`` for any ``x`` and
+ rel_tol less than ``1.0``. So add an appropriate positive abs_tol argument
+ to the call.
The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be
handled according to IEEE rules. Specifically, ``NaN`` is not considered
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index 6be61c99..2ecee89 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -244,19 +244,21 @@ Number-theoretic and representation functions
``False`` otherwise.
Whether or not two values are considered close is determined according to
- given absolute and relative tolerances.
+ given absolute and relative tolerances. If no errors occur, the result will
+ be: ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``.
*rel_tol* is the relative tolerance -- it is the maximum allowed difference
between *a* and *b*, relative to the larger absolute value of *a* or *b*.
For example, to set a tolerance of 5%, pass ``rel_tol=0.05``. The default
tolerance is ``1e-09``, which assures that the two values are the same
- within about 9 decimal digits. *rel_tol* must be greater than zero.
-
- *abs_tol* is the minimum absolute tolerance -- useful for comparisons near
- zero. *abs_tol* must be at least zero.
-
- If no errors occur, the result will be:
- ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``.
+ within about 9 decimal digits. *rel_tol* must be nonnegative and less
+ than ``1.0``.
+
+ *abs_tol* is the absolute tolerance; it defaults to ``0.0`` and it must be
+ nonnegative. When comparing ``x`` to ``0.0``, ``isclose(x, 0)`` is computed
+ as ``abs(x) <= rel_tol * abs(x)``, which is ``False`` for any ``x`` and
+ rel_tol less than ``1.0``. So add an appropriate positive abs_tol argument
+ to the call.
The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be
handled according to IEEE rules. Specifically, ``NaN`` is not considered