From 6b5e4c90e40466c4b78a71919eb5274772044f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Axel=20S=C3=B8gaard?= Date: Tue, 1 Apr 2014 20:42:54 +0200 Subject: [PATCH] Use quotient/remainder in bezout Use quotient/remainder in bezout. This is much more efficient. --- .../math-lib/math/private/number-theory/divisibility.rkt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/math-pkgs/math-lib/math/private/number-theory/divisibility.rkt b/pkgs/math-pkgs/math-lib/math/private/number-theory/divisibility.rkt index 1700b4353b..9454ba3c1c 100644 --- a/pkgs/math-pkgs/math-lib/math/private/number-theory/divisibility.rkt +++ b/pkgs/math-pkgs/math-lib/math/private/number-theory/divisibility.rkt @@ -37,8 +37,7 @@ (define (bezout-binary a b) (: loop : Integer Integer Integer Integer Integer Integer -> (List Integer Integer)) (define (loop a b ua va ub vb) ; a>=b>0 , a = ua*a+ub*b, b = ub*a+ub*b - (let ([r (remainder a b)] - [q (quotient a b)]) + (let-values ([(q r) (quotient/remainder a b)]) (if (= r 0) (list ub vb) (loop b r ub vb (- ua (* q ub)) (- va (* q vb))))))