Skip to content

Conversation

@skirpichev
Copy link
Contributor

  • partial tests for cosh/sinh overflows (L535 and L771). I doubt both ||-ed conditions could be tested.
  • removed inaccessible case in sqrt (L832): ax=ay=0 is handled above (L823) because fabs() is exact. Also added test (checked with mpmath and gmpy2) for second condition on that line.
  • some trivial tests for isclose (cover all conditions on L1217-1218)
  • add comment for uncovered L1018
- partial tests for cosh/sinh overflows (L535 and L771). I doubt both ||-ed conditions could be tested. - removed inaccessible case in sqrt (L832): ax=ay=0 is handled above (L823) because fabs() is exact. Also added test (checked with mpmath and gmpy2) for second condition on that line. - some trivial tests for isclose (cover all conditions on L1217-1218) - add comment for uncovered L1018
@skirpichev
Copy link
Contributor Author

BTW, there are some places with workarounds for systems with unsigned zeros (e.g. this or this). Does it make sense to keep that after #102046?

Copy link
Member

@mdickinson mdickinson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM; I took the liberty of fixing the sqrt test value. (The values in cmath_testcases.txt should all be the "ideal" values - i.e., those that would arise from a perfectly correctly-rounded implementation.)

@mdickinson
Copy link
Member

Does it make sense to keep that after #102046?

Let's leave as is - they're not causing any problems, so there's no reason to change. And who knows - we might encounter some situation in the future where we want this code to work on systems without signed zeros ...

@mdickinson mdickinson merged commit 592f65f into python:main Feb 22, 2023
carljm added a commit to carljm/cpython that referenced this pull request Feb 23, 2023
* main: (76 commits) Fix syntax error in struct doc example (python#102160) pythongh-99108: Import MD5 and SHA1 from HACL* (python#102089) pythonGH-101777: `queue.rst`: use 2 spaces after a period to be consistent. (python#102143) Few coverage nitpicks for the cmath module (python#102067) pythonGH-100982: Restrict `FOR_ITER_RANGE` to a single instruction to allow instrumentation. (pythonGH-101985) pythongh-102135: Update turtle docs to rename wikipedia demo to rosette (python#102137) pythongh-99942: python.pc on android/cygwin should link to libpython per configure.ac (pythonGH-100356) pythongh-95672 fix typo SkitTest to SkipTest (pythongh-102119) pythongh-101936: Update the default value of fp from io.StringIO to io.BytesIO (pythongh-102100) pythongh-102008: simplify test_except_star by using sys.exception() instead of sys.exc_info() (python#102009) pythongh-101903: Remove obsolete undefs for previously removed macros Py_EnterRecursiveCall and Py_LeaveRecursiveCall (python#101923) pythongh-100556: Improve clarity of `or` docs (python#100589) pythongh-101777: Make `PriorityQueue` docs slightly clearer (python#102026) pythongh-101965: Fix usage of Py_EnterRecursiveCall return value in _bisectmodule.c (pythonGH-101966) pythongh-101578: Amend exception docs (python#102057) pythongh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (pythongh-102068) pythongh-102056: Fix a few bugs in error handling of exception printing code (python#102078) pythongh-102011: use sys.exception() instead of sys.exc_info() in docs where possible (python#102012) pythongh-101566: Sync with zipp 3.14. (pythonGH-102018) pythonGH-99818: improve the documentation for zipfile.Path and Traversable (pythonGH-101589) ...
@skirpichev skirpichev deleted the cmath-cov branch February 23, 2023 02:21
@skirpichev
Copy link
Contributor Author

Let's leave as is - they're not causing any problems, so there's no reason to change.

Then it probably does make sense

  1. to document branch cuts conventions for non-IEEE 754 systems (in sources, not user docs)
  2. and/or add comments in other places with similar workarounds. I doubt this stuff will be obvious for a reader, coming with the current module docs in mind.
@mdickinson
Copy link
Member

Then it probably does make sense [...]

No, sorry, not worth it. We can worry about that if a relevant system ever shows up.

JelleZijlstra pushed a commit to JelleZijlstra/cpython that referenced this pull request Sep 10, 2024
- partial tests for cosh/sinh overflows (L535 and L771). I doubt both ||-ed conditions could be tested. - removed inaccessible case in sqrt (L832): ax=ay=0 is handled above (L823) because fabs() is exact. Also added test (checked with mpmath and gmpy2) for second condition on that line. - some trivial tests for isclose (cover all conditions on L1217-1218) - add comment for uncovered L1018 Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment