Class Gcd31


  • public class Gcd31
    extends Object
    GCD implementations for 32-bit integers. The binary gcd is much faster than the Euclidean, and also faster than the built-in BigInteger gcd().
    Author:
    Tilman Neumann
    • Constructor Detail

      • Gcd31

        public Gcd31()
    • Method Detail

      • gcd_euclid_withDivision

        public int gcd_euclid_withDivision​(int m,
                                           int n)
        Greatest common divisor of the given two arguments. Euclid's algorithm implementation with division.
        Parameters:
        m -
        n -
        Returns:
        gcd(m, n)
      • gcd_binary1

        public int gcd_binary1​(int m,
                               int n)
        Binary gcd implementation.
        Parameters:
        m -
        n -
        Returns:
        gcd(m, n)
      • gcd

        public int gcd​(int a,
                       int b)
        Faster binary gcd adapted from OpenJdk's MutableBigInteger.binaryGcd(int, int).
        Parameters:
        a -
        b -
        Returns:
        gcd(a, b)
      • gcd

        public Integer gcd​(Collection<Integer> arguments)
        GCD of all arguments.
        Parameters:
        arguments -
        Returns:
        gcd of all arguments