diff options
| author | Mark Dickinson <dickinsm@gmail.com> | 2019-05-18 12:29:50 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-18 12:29:50 +0100 |
| commit | 73934b9da07daefb203e7d26089e7486a1ce4fdf (patch) | |
| tree | 6d5f9d2f8bd86dbd219685a3e6124af44a158811 /Modules/clinic | |
| parent | 410759fba80aded5247b693c60745aa16906f3bb (diff) | |
| download | cpython-git-73934b9da07daefb203e7d26089e7486a1ce4fdf.tar.gz | |
bpo-36887: add math.isqrt (GH-13244)
* 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: Serhiy Storchaka <storchaka@gmail.com>
* Update Modules/mathmodule.c
Use real argument clinic type instead of an alias
Co-Authored-By: Serhiy 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.
Diffstat (limited to 'Modules/clinic')
| -rw-r--r-- | Modules/clinic/mathmodule.c.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Modules/clinic/mathmodule.c.h b/Modules/clinic/mathmodule.c.h index 1806a01588..e677bd896c 100644 --- a/Modules/clinic/mathmodule.c.h +++ b/Modules/clinic/mathmodule.c.h @@ -65,6 +65,15 @@ PyDoc_STRVAR(math_fsum__doc__, #define MATH_FSUM_METHODDEF \ {"fsum", (PyCFunction)math_fsum, METH_O, math_fsum__doc__}, +PyDoc_STRVAR(math_isqrt__doc__, +"isqrt($module, n, /)\n" +"--\n" +"\n" +"Return the integer part of the square root of the input."); + +#define MATH_ISQRT_METHODDEF \ + {"isqrt", (PyCFunction)math_isqrt, METH_O, math_isqrt__doc__}, + PyDoc_STRVAR(math_factorial__doc__, "factorial($module, x, /)\n" "--\n" @@ -628,4 +637,4 @@ skip_optional_kwonly: exit: return return_value; } -/*[clinic end generated code: output=96e71135dce41c48 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=aeed62f403b90199 input=a9049054013a1b77]*/ |
