From 8466d8cfa486fb30d1755c4261b781135083787b Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:29 -0800 Subject: Import Upstream version 3a1 --- root.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'root.scm') diff --git a/root.scm b/root.scm index 144a4af..0a56bc9 100644 --- a/root.scm +++ b/root.scm @@ -8,7 +8,7 @@ ;1. Any copy made of this software must include this copyright notice ;in full. ; -;2. I have made no warrantee or representation that the operation of +;2. I have made no warranty or representation that the operation of ;this software will be error-free, and I am under no obligation to ;provide any services, by way of maintenance, update, or otherwise. ; @@ -23,7 +23,7 @@ ;;; D. E. Knuth, "The Art of Computer Programming", Vol 2 / ;;; Seminumerical Algorithms, Reading Massachusetts, Addison-Wesley ;;; Publishing Company, 2nd Edition, p. 510 - +;@ (define (newton:find-integer-root f df/dx x_0) (let loop ((x x_0) (fx (f x_0))) (cond @@ -40,12 +40,12 @@ (next-fx (f next-x))) (cond ((>= (abs next-fx) (abs fx)) x) (else (loop next-x next-fx))))))))))) - +;@ (define (integer-sqrt y) (newton:find-integer-root (lambda (x) (- (* x x) y)) (lambda (x) (* 2 x)) (ash 1 (quotient (integer-length y) 2)))) - +;@ (define (newton:find-root f df/dx x_0 prec) (if (and (negative? prec) (integer? prec)) (let loop ((x x_0) (fx (f x_0)) (count prec)) @@ -71,7 +71,7 @@ ;;; H. J. Orchard, "The Laguerre Method for Finding the Zeros of ;;; Polynomials", IEEE Transactions on Circuits and Systems, Vol. 36, ;;; No. 11, November 1989, pp 1377-1381. - +;@ (define (laguerre:find-root f df/dz ddf/dz^2 z_0 prec) (if (and (negative? prec) (integer? prec)) (let loop ((z z_0) (fz (f z_0)) (count prec)) @@ -114,7 +114,7 @@ ((and delta-z (>= next-delta-z delta-z)) z) (else (loop next-z (f next-z) next-delta-z))))))))))) - +;@ (define (laguerre:find-polynomial-root deg f df/dz ddf/dz^2 z_0 prec) (if (and (negative? prec) (integer? prec)) (let loop ((z z_0) (fz (f z_0)) (count prec)) @@ -210,7 +210,7 @@ (fnew (f xnew)) (fmax (max (abs f1) (abs fnew)))) (secant-iter x1 f1 xnew fnew (+ count 1))))))))))) - +;@ (define (secant:find-root f x0 x1 prec) (secant:find-root-1 f x0 x1 prec #f)) (define (secant:find-bracketed-root f x0 x1 prec) -- cgit v1.2.3