Class Gcd31

java.lang.Object
de.tilman_neumann.jml.gcd.Gcd31

public class Gcd31
extends java.lang.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().
  • Constructor Summary

    Constructors
    Constructor Description
    Gcd31()  
  • Method Summary

    Modifier and Type Method Description
    int gcd​(int a, int b)
    Faster binary gcd adapted from OpenJdk's MutableBigInteger.binaryGcd(int, int).
    java.lang.Integer gcd​(java.util.Collection<java.lang.Integer> arguments)
    GCD of all arguments.
    int gcd_binary1​(int m, int n)
    Binary gcd implementation.
    int gcd_euclid_withDivision​(int m, int n)
    Greatest common divisor of the given two arguments.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Gcd31

      public Gcd31()
  • Method Details

    • 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 java.lang.Integer gcd​(java.util.Collection<java.lang.Integer> arguments)
      GCD of all arguments.
      Parameters:
      arguments -
      Returns:
      gcd of all arguments