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

5 lines
162 B
OCaml

let rec agm a g tol =
if tol > abs_float (a -. g) then a else
agm (0.5*.(a+.g)) (sqrt (a*.g)) tol
let _ = Printf.printf "%.16f\n" (agm 1.0 (sqrt 0.5) 1e-15)