RosettaCodeData/Task/Arithmetic-geometric-mean/Icon/arithmetic-geometric-mean.icon
Ingy döt Net 776bba907c Sync
2013-10-27 22:24:23 +00:00

16 lines
323 B
Text

procedure main(A)
a := real(A[1]) | 1.0
g := real(A[2]) | (1 / 2^0.5)
epsilon := real(A[3])
write("agm(",a,",",g,") = ",agm(a,g,epsilon))
end
procedure agm(an, gn, e)
/e := 1e-15
while abs(an-gn) > e do {
ap := (an+gn)/2.0
gn := (an*gn)^0.5
an := ap
}
return an
end