Package de.tilman_neumann.jml.gcd
Class Gcd31
- java.lang.Object
-
- de.tilman_neumann.jml.gcd.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 Summary
Constructors Constructor Description Gcd31()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
gcd(int a, int b)
Faster binary gcd adapted from OpenJdk's MutableBigInteger.binaryGcd(int, int).Integer
gcd(Collection<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.
-
-
-
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
-
-