Merge branch 'master' of git+ssh://metalzone.distorted.org.uk/~mdw/public-git/catacomb/
[u/mdw/catacomb] / mp-gcd.c
index 5312400..c78181f 100644 (file)
--- a/mp-gcd.c
+++ b/mp-gcd.c
@@ -118,19 +118,19 @@ void mp_gcd(mp **gcd, mp **xx, mp **yy, mp *a, mp *b)
     return;
   }
 
-  /* --- Take a reference to the arguments --- */
+  /* --- Force the signs on the arguments and take copies --- */
 
   a = MP_COPY(a);
   b = MP_COPY(b);
 
-  /* --- Make sure @a@ and @b@ are not both even --- */
-
   MP_SPLIT(a); a->f &= ~MP_NEG;
   MP_SPLIT(b); b->f &= ~MP_NEG;
 
   u = MP_COPY(a);
   v = MP_COPY(b);
 
+  /* --- Main extended Euclidean algorithm --- */
+
   while (!MP_ZEROP(v)) {
     mp *t;
     mp_div(&q, &u, u, v);