Package de.tilman_neumann.jml.gcd
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 intgcd(int a, int b)Faster binary gcd adapted from OpenJdk's MutableBigInteger.binaryGcd(int, int).java.lang.Integergcd(java.util.Collection<java.lang.Integer> arguments)GCD of all arguments.intgcd_binary1(int m, int n)Binary gcd implementation.intgcd_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
-