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

igcd(I1,I2)
     :: The integer greatest common divisor of I1 and I2.

igcdcntl([I])
     :: Selects an algorithm for integer GCD.

RETURN
     integer

I1,I2,I
     integer

   * Function `igcd()' returns the integer greatest common divisor of
     the given two integers.

   * An error will result if the argument is not an integer; the result
     is not valid even if one is returned.

   * Use `gcd()', `gcdz()' for polynomial GCD.

   * Various method of integer GCD computation are implemented and they
     can be selected by `igcdcntl'.

    `0'
          Euclid algorithm (default)

    `1'
          binary GCD

    `2'
          bmod GCD

    `3'
          accelerated integer GCD `2', `3' are due to `[Weber]'.

     In most cases `3' is the fastest, but there are exceptions.

     [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)

References
     *Note `gcd gcdz': gcd gcdz.

