`igcd',`igcdcntl'
-----------------

igcd(I1,I2)
     :: $B@0?t$N(B GCD ($B:GBg8xLs?t(B)

igcdcntl([I])
     :: $B@0?t(B GCD$B$N%"%k%4%j%:%`A*Br(B

RETURN
     $B@0?t(B

I1,I2,I
     $B@0?t(B

   * `igcd' $B$O(B I1 $B$H(B I2 $B$N(B GCD $B$r5a$a$k(B.

   * $B0z?t$,@0?t$G$J$$>l9g$O(B, $B%(%i!<$^$?$OL50UL#$J7k2L$rJV$9(B.

   * $BB?9`<0$N>l9g$O(B, `gcd', `gcdz' $B$rMQ$$$k(B.

   * $B@0?t(B GCD $B$K$O$5$^$6$^$JJ}K!$,$"$j(B, `igcdcntl' $B$G@_Dj$G$-$k(B.

    `0'
          Euclid $B8_=|K!(B (default)

    `1'
          binary GCD

    `2'
          bmod GCD

    `3'
          accelerated integer GCD `2', `3' $B$O(B `[Weber]' $B$K$h$k(B.

     $B$*$*$`$M(B `3' $B$,9bB.$@$,(B, $BNc30$b$"$k(B.

     [0] A=lrandom(10^4)$
     [1] B=lrandom(10^4)$
     [2] C=lrandom(10^4)$
     [3] D=A*C$
     [4] E=A*B$
     [5] cputime(1)$
     [6] igcd(D,E)$
     0.6sec + gc : 1.93sec(2.531sec)
     [7] igcdcntl(1)$
     [8] igcd(D,E)$
     0.27sec(0.2635sec)
     [9] igcdcntl(2)$
     [10] igcd(D,E)$
     0.19sec(0.1928sec)
     [11] igcdcntl(3)$
     [12] igcd(D,E)$
     0.08sec(0.08023sec)

$B;2>H(B
     *Note `gcd gcdz': gcd gcdz.

