diff options
author | Mattias Engdegård <mattiase@acm.org> | 2021-10-15 12:04:02 +0200 |
---|---|---|
committer | Mattias Engdegård <mattiase@acm.org> | 2021-10-15 12:14:05 +0200 |
commit | 5757b6b20422096de3f4c34e06e8c3b6252d6d85 (patch) | |
tree | 9cfa66dbb48a220025eba9fc34970ba4ea2c12ad | |
parent | d8d71cef9e7b653dbbb0e89ab24eab45e756ed49 (diff) | |
download | emacs-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.el | 5 | ||||
-rw-r--r-- | test/lisp/calc/calc-tests.el | 6 |
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 |