RosettaCodeData/Task/Arithmetic-geometric-mean/Nim/arithmetic-geometric-mean-1.nim
2023-07-01 13:44:08 -04:00

14 lines
290 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))