Class TDiv31Barrett
java.lang.Object
de.tilman_neumann.jml.factor.FactorAlgorithm
de.tilman_neumann.jml.factor.tdiv.TDiv31Barrett
public class TDiv31Barrett extends FactorAlgorithm
Trial division using long-valued Barrett reduction,
see https://en.wikipedia.org/wiki/Barrett_reduction.
Significantly faster than TDiv31Inverse.
-
Field Summary
Fields inherited from class de.tilman_neumann.jml.factor.FactorAlgorithm
NUM_PRIMES_FOR_31_BIT_TDIV, tdivLimit
-
Constructor Summary
Constructors Constructor Description TDiv31Barrett()
-
Method Summary
Modifier and Type Method Description void
factor(java.math.BigInteger Nbig, int Nexp, SortedMultiset<java.math.BigInteger> primeFactors)
Find all factor of NBig, which must have less than 32 bit.void
factor(java.math.BigInteger Nbig, SortedMultiset<java.math.BigInteger> primeFactors)
Decomposes the argument N into prime factors.int
findSingleFactor(int N)
java.math.BigInteger
findSingleFactor(java.math.BigInteger N)
Find a single factor of the given N, which is composite and odd.java.lang.String
getName()
Methods inherited from class de.tilman_neumann.jml.factor.FactorAlgorithm
factor, getDefault, searchFactors
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
TDiv31Barrett
public TDiv31Barrett()
-
-
Method Details
-
getName
public java.lang.String getName()- Specified by:
getName
in classFactorAlgorithm
- Returns:
- The name of the algorithm, possibly including important parameters.
-
factor
Description copied from class:FactorAlgorithm
Decomposes the argument N into prime factors.- Overrides:
factor
in classFactorAlgorithm
- Parameters:
Nbig
- Number to factor.primeFactors
- a map to which found factors are added
-
factor
public void factor(java.math.BigInteger Nbig, int Nexp, SortedMultiset<java.math.BigInteger> primeFactors)Find all factor of NBig, which must have less than 32 bit.- Parameters:
Nbig
-Nexp
- the exponent which with found factors are added to primeFactorsprimeFactors
-
-
findSingleFactor
public java.math.BigInteger findSingleFactor(java.math.BigInteger N)Description copied from class:FactorAlgorithm
Find a single factor of the given N, which is composite and odd.- Specified by:
findSingleFactor
in classFactorAlgorithm
- Parameters:
N
- number to be factored.- Returns:
- factor
-
findSingleFactor
public int findSingleFactor(int N)
-