]> git.eshelyaron.com Git - emacs.git/commitdiff
Calc: mend math-nth-root-float (bug#51209)
authorMattias Engdegård <mattiase@acm.org>
Fri, 15 Oct 2021 10:04:02 +0000 (12:04 +0200)
committerMattias Engdegård <mattiase@acm.org>
Fri, 15 Oct 2021 10:14:05 +0000 (12:14 +0200)
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.

lisp/calc/calc-math.el
test/lisp/calc/calc-tests.el

index 1c2e7bcf2bc7ea959e18727917f686d44e317da2..ba2b6b2ca9cac061edd2803cb0bc0a14b444b1b8 100644 (file)
@@ -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))
index 8a78a06824273fefe2ac7f57757968f825fd1b33..3eb6b34c132bf3f68757d24ed5e7280d07947fd1 100644 (file)
@@ -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