Class TDiv_QS_nLP_Full

java.lang.Object
de.tilman_neumann.jml.factor.siqs.tdiv.TDiv_QS_nLP_Full
All Implemented Interfaces:
TDiv_QS

public class TDiv_QS_nLP_Full
extends java.lang.Object
implements TDiv_QS
A trial division engine where partials can have several large factors. This is an older version that divides by all factors of the prime base.
  • Constructor Summary

    Constructors
    Constructor Description
    TDiv_QS_nLP_Full​(boolean permitUnsafeUsage)
    Full constructor.
  • Method Summary

    Modifier and Type Method Description
    void cleanUp()
    Release memory after a factorization.
    java.lang.String getName()  
    TDivReport getReport()  
    void initializeForAParameter​(java.math.BigInteger da, int d, java.math.BigInteger b, SolutionArrays solutionArrays, int filteredBaseSize, int[] unsievedBaseElements)
    Set prime/power base, polynomial parameters and smallest x-solutions for a new a-parameter.
    void initializeForN​(double N_dbl, SieveParams sieveParams)
    Initialize this trial division engine for a new N.
    java.util.List<AQPair> testList​(java.lang.Iterable<SmoothCandidate> smoothCandidates)
    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.

    Methods inherited from class java.lang.Object

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

    • TDiv_QS_nLP_Full

      public TDiv_QS_nLP_Full​(boolean permitUnsafeUsage)
      Full constructor.
      Parameters:
      permitUnsafeUsage - if true then SIQS_Small (which is used for N > 310 bit to factor Q-rests) uses a sieve exploiting sun.misc.Unsafe features.
  • Method Details

    • getName

      public java.lang.String getName()
      Specified by:
      getName in interface TDiv_QS
      Returns:
      the name of this algorithm
    • initializeForN

      public void initializeForN​(double N_dbl, SieveParams sieveParams)
      Description copied from interface: TDiv_QS
      Initialize this trial division engine for a new N.
      Specified by:
      initializeForN in interface TDiv_QS
      sieveParams - the biggest QRest admitted for a smooth relation
    • initializeForAParameter

      public void initializeForAParameter​(java.math.BigInteger da, int d, java.math.BigInteger b, SolutionArrays solutionArrays, int filteredBaseSize, int[] unsievedBaseElements)
      Description copied from interface: TDiv_QS
      Set prime/power base, polynomial parameters and smallest x-solutions for a new a-parameter.
      Specified by:
      initializeForAParameter in interface TDiv_QS
      Parameters:
      da - d*a, with d = 1 or 2 depending on kN % 8
      d - the d-value
      b - the (first) b-parameter
      filteredBaseSize - number of primes and powers use for sieving
      unsievedBaseElements - Prime base elements that were excluded from sieving, like the q's that give the a-parameter in SIQS
    • testList

      public java.util.List<AQPair> testList​(java.lang.Iterable<SmoothCandidate> smoothCandidates)
      Description copied from interface: TDiv_QS
      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.
      Specified by:
      testList in interface TDiv_QS
      Parameters:
      smoothCandidates - (something like a) list of the smooth candidates to test
      Returns:
      the AQ-pairs where Q is at least "sufficiently smooth"
    • getReport

      public TDivReport getReport()
      Specified by:
      getReport in interface TDiv_QS
      Returns:
      a description of the performed tests.
    • cleanUp

      public void cleanUp()
      Description copied from interface: TDiv_QS
      Release memory after a factorization.
      Specified by:
      cleanUp in interface TDiv_QS