summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMattias Engdegård <mattiase@acm.org>2021-10-15 12:04:02 +0200
committerMattias Engdegård <mattiase@acm.org>2021-10-15 12:14:05 +0200
commit5757b6b20422096de3f4c34e06e8c3b6252d6d85 (patch)
tree9cfa66dbb48a220025eba9fc34970ba4ea2c12ad
parentd8d71cef9e7b653dbbb0e89ab24eab45e756ed49 (diff)
downloademacs-5757b6b20422096de3f4c34e06e8c3b6252d6d85.tar.gz
Calc: mend math-nth-root-float (bug#51209)
Reported by Iñaki Cornejo. * lisp/calc/calc-math.el (math-nth-root-float): Fix old refactoring mistake. * test/lisp/calc/calc-tests.el (calc-nth-root): New test.
-rw-r--r--lisp/calc/calc-math.el5
-rw-r--r--test/lisp/calc/calc-tests.el6
2 files changed, 9 insertions, 2 deletions
diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el
index 1c2e7bcf2bc..ba2b6b2ca9c 100644
--- a/lisp/calc/calc-math.el
+++ b/lisp/calc/calc-math.el
@@ -618,8 +618,9 @@ If this can't be done, return NIL."
(defun math-nth-root-float (a nrf-n &optional guess)
(math-inexact-result)
(math-with-extra-prec 1
- (let ((math-nrf-nf (math-float nrf-n))
- (math-nrf-nfm1 (math-float (1- nrf-n))))
+ (let ((math-nrf-n nrf-n)
+ (math-nrf-nf (math-float nrf-n))
+ (math-nrf-nfm1 (math-float (1- nrf-n))))
(math-nth-root-float-iter a (or guess
(math-make-float
1 (/ (+ (math-numdigs (nth 1 a))
diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el
index 8a78a068242..3eb6b34c132 100644
--- a/test/lisp/calc/calc-tests.el
+++ b/test/lisp/calc/calc-tests.el
@@ -810,6 +810,12 @@ An existing calc stack is reused, otherwise a new one is created."
(should (equal (calcFunc-test6 3) (* (* 3 2) (- 3 1))))
(should (equal (calcFunc-test7 3) (* 3 2))))
+(ert-deftest calc-nth-root ()
+ ;; bug#51209
+ (let* ((calc-display-working-message nil)
+ (x (calc-tests--calc-to-number (math-pow 8 '(frac 1 6)))))
+ (should (< (abs (- x (sqrt 2.0))) 1.0e-10))))
+
(provide 'calc-tests)
;;; calc-tests.el ends here