13 lines
279 B
Text
13 lines
279 B
Text
import <Utilities/Math.sl>;
|
|
|
|
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));
|