
gcd(+Number1, +Number2, -U, -V, -GCD)

   Unifies GCD with the Greatest Common Divisor of
	Number1 and Number2, and gives appropriate coefficients U and
	V for the corresponding Bezout equation

Arguments
   Number1             Integer.
   Number2             Integer.
   U                   Output: integer.
   V                   Output: integer.
   GCD                 Output: integer.

Type
   Arithmetic

Description

   The Greatest Common Divisor operation is only defined on integer arguments.

   This predicate can be used as a function in arithmetic expressions.
   In coroutining mode, if Number1 or Number2 are uninstantiated, the call
   is delayed until these variables are instantiated.

   The Bezout equation is Number1*U + Number2*V = GCD.  These
   coefficients are calculated by an extended version of Euclid's
   algorithm.




Modes and Determinism
   gcd(+, +, -, -, -) is det

Exceptions
     4 --- Number1 or Number2 is not instantiated (non-coroutining mode    only).
     5 --- Number1 or Number2 is a number but not an integer.
    24 --- Number1 or Number2 is not of a numeric type.

Examples
   
Success:
      gcd(9, 15, 2, -1, 3).
      gcd(-9, 15, -2, -1, 3).
      gcd(2358352782,97895234896224,U,V,G).  % gives U = 2130001290117, V = -51312962, G = 6 

Error:
      gcd(A, 2, U, V, G).           (Error 4).
      gcd(1.0, 2, U, V, G).         (Error 5).
      gcd(4 + 2, 2, U, V, G).       (Error 24).


See Also
   gcd / 3, lcm / 3, is / 2
