Function: math-newton-root
math-newton-root is a byte-compiled function defined in
calcalg3.el.gz.
Signature
(math-newton-root EXPR DERIV GUESS ORIG-GUESS LIMIT)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calcalg3.el.gz
(defun math-newton-root (expr deriv guess orig-guess limit)
(math-working "newton" guess)
(let* ((var-DUMMY guess)
next dval)
(setq next (math-evaluate-expr expr)
dval (math-evaluate-expr deriv))
(if (and (Math-numberp next)
(Math-numberp dval)
(not (Math-zerop dval)))
(progn
(setq next (math-sub guess (math-div next dval)))
(if (math-nearly-equal guess (setq next (math-float next)))
(progn
(setq var-DUMMY next)
(list 'vec next (math-evaluate-expr expr)))
(if (Math-lessp (math-abs-approx (math-sub next orig-guess))
limit)
(math-newton-root expr deriv next orig-guess limit)
(math-reject-arg next "*Newton's method failed to converge"))))
(math-reject-arg next "*Newton's method encountered a singularity"))))