19 lines
386 B
Text
19 lines
386 B
Text
import math // import for sqrt() function
|
|
|
|
amean: func (x: Double, y: Double) -> Double {
|
|
(x + y) / 2.
|
|
}
|
|
gmean: func (x: Double, y: Double) -> Double {
|
|
sqrt(x * y)
|
|
}
|
|
agm: func (a: Double, g: Double) -> Double {
|
|
while ((a - g) abs() > pow(10, -12)) {
|
|
(a1, g1) := (amean(a, g), gmean(a, g))
|
|
(a, g) = (a1, g1)
|
|
}
|
|
a
|
|
}
|
|
|
|
main: func {
|
|
"%.16f" printfln(agm(1., sqrt(0.5)))
|
|
}
|