import ; agm(a, g) := let iota := 1.0e-15; arithmeticMean := 0.5 * (a + g); geometricMean := sqrt(a * g); in a when abs(a-g) < iota else agm(arithmeticMean, geometricMean); main := agm(1.0, 1.0 / sqrt(2));