Interface TDiv_QS
-
- All Known Implementing Classes:
TDiv_QS_1Large
,TDiv_QS_1Large_UBI
,TDiv_QS_2Large_UBI
,TDiv_QS_2Large_UBI_BarrettD
,TDiv_QS_nLarge
,TDiv_QS_nLarge_UBI
,TDiv_QS_Small
public interface TDiv_QS
Interface for trial division engines to find the factorization of smooth Q(x) with given x.- Author:
- Tilman Neumann
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
cleanUp()
Release memory after a factorization.String
getName()
TDivReport
getReport()
void
initializeForAParameter(BigInteger da, int d, BigInteger b, SolutionArrays primeSolutions, int filteredBaseSize, int[] unsievedBaseElements)
Set prime/power base, polynomial parameters and smallest x-solutions for a new a-parameter.void
initializeForN(double N_dbl, BigInteger kN, double maxQRest)
Initialize this trial division engine for a new N.void
setBParameter(BigInteger b)
Set a new b-parameter.List<AQPair>
testList(List<Integer> xList)
Test if Q(x) is smooth (factors completely over the prime base) or "sufficiently smooth" (factors almost over the prime base) for all x in the given list.
-
-
-
Method Detail
-
getName
String getName()
- Returns:
- the name of this algorithm
-
initializeForN
void initializeForN(double N_dbl, BigInteger kN, double maxQRest)
Initialize this trial division engine for a new N.- Parameters:
N_dbl
-kN
- multiplier k (typically Knuth-Schroeppel) * factor argument NmaxQRest
- the biggest QRest admitted for a smooth relation
-
initializeForAParameter
void initializeForAParameter(BigInteger da, int d, BigInteger b, SolutionArrays primeSolutions, int filteredBaseSize, int[] unsievedBaseElements)
Set prime/power base, polynomial parameters and smallest x-solutions for a new a-parameter.- Parameters:
da
- d*a, with d = 1 or 2 depending on kN % 8d
- the d-valueb
- the (first) b-parameterprimeSolutions
-filteredBaseSize
- number of primes and powers use for sievingunsievedBaseElements
- Prime base elements that were excluded from sieving, like the q's that give the a-parameter in SIQS
-
setBParameter
void setBParameter(BigInteger b)
Set a new b-parameter.- Parameters:
b
-
-
testList
List<AQPair> testList(List<Integer> xList)
Test if Q(x) is smooth (factors completely over the prime base) or "sufficiently smooth" (factors almost over the prime base) for all x in the given list.- Parameters:
xList
-- Returns:
- the AQ-pairs where Q is at least "sufficiently smooth"
-
getReport
TDivReport getReport()
- Returns:
- a description of the performed tests.
-
cleanUp
void cleanUp()
Release memory after a factorization.
-
-