RosettaCodeData/Task/Arithmetic-geometric-mean/Scheme/arithmetic-geometric-mean.scm
2024-10-16 18:07:41 -07:00

10 lines
315 B
Scheme

(define agm
(case-lambda
((a0 g0) ; call again with default value for tolerance
(agm a0 g0 1e-8))
((a0 g0 tolerance) ; called with three arguments
(do ((a a0 (* (+ a g) 1/2))
(g g0 (sqrt (* a g))))
((< (abs (- a g)) tolerance) a)))))
(display (agm 1 (/ 1 (sqrt 2)))) (newline)