library: tweak gcd
authorJim Pryor <profjim@jimpryor.net>
Mon, 4 Oct 2010 12:34:47 +0000 (08:34 -0400)
committerJim Pryor <profjim@jimpryor.net>
Mon, 4 Oct 2010 12:34:47 +0000 (08:34 -0400)
Signed-off-by: Jim Pryor <profjim@jimpryor.net>
lambda_library.mdwn

index bdd0168..2e65f5c 100644 (file)
@@ -237,8 +237,9 @@ and all sorts of other places. Others of them are our own handiwork.
 
 
        ; now you can search for primes, do encryption :-)
-       let gcd = Y (\gcd m n. iszero n m (gcd n (mod m n))) in
-       let lcm = \m n. or (iszero m) (iszero n) 0 (mul (div m (gcd m n)) n) in
+       let gcd = Y (\gcd m n. iszero n m (gcd n (mod m n)))  in ; or
+       let gcd = \m n. iszero m n (Y (\gcd m n. iszero n m (lt n m (gcd (sub m n) n) (gcd m (sub n m)))) m n)  in
+       let lcm = \m n. or (iszero m) (iszero n) 0 (mul (div m (gcd m n)) n)  in
 
 
        ; length for version 1 lists