• Mark Dickinson's avatar
    bpo-36887: add math.isqrt (GH-13244) · 73934b9d
    Mark Dickinson yazdı
    * Add math.isqrt function computing the integer square root.
    
    * Code cleanup: remove redundant comments, rename some variables.
    
    * Tighten up code a bit more; use Py_XDECREF to simplify error handling.
    
    * Update Modules/mathmodule.c
    Co-Authored-By: 's avatarSerhiy Storchaka <storchaka@gmail.com>
    
    * Update Modules/mathmodule.c
    
    Use real argument clinic type instead of an alias
    Co-Authored-By: 's avatarSerhiy Storchaka <storchaka@gmail.com>
    
    * Add proof sketch
    
    * Updates from review.
    
    * Correct and expand documentation.
    
    * Fix bad reference handling on error; make some variables block-local; other tidying.
    
    * Style and consistency fixes.
    
    * Add missing error check; don't try to DECREF a NULL a
    
    * Simplify some error returns.
    
    * Another two test cases:
    
    - clarify that floats are rejected even if they happen to be
      squares of small integers
    - TypeError beats ValueError for a negative float
    
    * Documentation and markup improvements; thanks Serhiy for the suggestions!
    
    * Cleaner Misc/NEWS entry wording.
    
    * Clean up (with one fix) to the algorithm explanation and proof.
    73934b9d