Class Gcd63


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

      • Gcd63

        public Gcd63()
    • Method Detail

      • gcd_euclid_withDivision

        public long gcd_euclid_withDivision​(long m,
                                            long 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 long gcd_binary1​(long m,
                                long n)
        Binary gcd implementation.
        Parameters:
        m -
        n -
        Returns:
        gcd(m, n)
      • gcd

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

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