RosettaCodeData/Task/Arithmetic-geometric-mean/Phix/arithmetic-geometric-mean.phix
2016-12-05 23:44:36 +01:00

8 lines
237 B
Text

function agm(atom a, atom g, atom tolerance=1.0e-15)
while abs(a-g)>tolerance do
{a,g} = {(a + g)/2,sqrt(a*g)}
printf(1,"%0.15g\n",a)
end while
return a
end function
?agm(1,1/sqrt(2)) -- (rounds to 10 d.p.)