mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-30 19:53:09 +00:00
* lisp/emacs-lisp/cl-extra.el (cl-isqrt): Speed up bignum case
This commit is contained in:
parent
955e370373
commit
5463b7e77a
@ -332,10 +332,9 @@ If so, return the true (non-nil) value returned by PREDICATE.
|
||||
|
||||
;;;###autoload
|
||||
(defun cl-isqrt (x)
|
||||
"Return the integer square root of the argument."
|
||||
"Return the integer square root of the (integer) argument."
|
||||
(if (and (integerp x) (> x 0))
|
||||
(let ((g (cond ((<= x 100) 10) ((<= x 10000) 100)
|
||||
((<= x 1000000) 1000) (t x)))
|
||||
(let ((g (ash 2 (/ (logb x) 2)))
|
||||
g2)
|
||||
(while (< (setq g2 (/ (+ g (/ x g)) 2)) g)
|
||||
(setq g g2))
|
||||
|
Loading…
Reference in New Issue
Block a user