RosettaCodeData/Task/Arithmetic-geometric-mean/Nim/arithmetic-geometric-mean-1.nim
2017-09-25 22:28:19 +02:00

14 lines
291 B
Nim

import math
proc agm(a, g: float,delta: float = 1.0e-15): float =
var
aNew: float = 0
aOld: float = a
gOld: float = g
while (abs(aOld - gOld) > delta):
aNew = 0.5 * (aOld + gOld)
gOld = sqrt(aOld * gOld)
aOld = aNew
result = aOld
echo $agm(1.0,1.0/sqrt(2.0))