10 lines
222 B
Tcl
10 lines
222 B
Tcl
proc agm {a b} {
|
|
set old_b [expr {$b<0?inf:-inf}]
|
|
while {$a != $b && $b != $old_b} {
|
|
set old_b $b
|
|
lassign [list [expr {0.5*($a+$b)}] [expr {sqrt($a*$b)}]] a b
|
|
}
|
|
return $a
|
|
}
|
|
|
|
puts [agm 1 [expr 1/sqrt(2)]]
|