RosettaCodeData/Task/Arithmetic-geometric-mean/SequenceL/arithmetic-geometric-mean.sequencel
2023-07-01 13:44:08 -04:00

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));