arithmetic-geometric_mean.sf 238 B

12345678910111213141516
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Arithmetic-geometric_mean
  4. #
  5. func agm(a, g) {
  6. loop {
  7. var x = [(a+g) / 2, sqrt(a*g)];
  8. x == [a, g] && return a;
  9. (a, g) = x...;
  10. }
  11. }
  12.  
  13. say agm(1, 1/sqrt(2));