RosettaCodeData/Task/Arithmetic-geometric-mean/Standard-ML/arithmetic-geometric-mean.ml

9 lines
166 B
OCaml

fun agm(a, g) = let
fun agm'(a, g, eps) =
if Real.abs(a-g) < eps then
a
else
agm'((a+g)/2.0, Math.sqrt(a*g), eps)
in agm'(a, g, 1e~15)
end;