Interface CongruenceCollector

All Known Implementing Classes:
CongruenceCollector_Small, CongruenceCollector01, CongruenceCollector02, CongruenceCollector03

public interface CongruenceCollector
  • Method Details

    • initialize

      void initialize​(java.math.BigInteger N, int primeBaseSize, MatrixSolver matrixSolver, FactorTest factorTest)
      Initialize congruence collector for a new N.
      Parameters:
      N -
      primeBaseSize -
      matrixSolver -
      factorTest -
    • setPrimeBaseSize

      void setPrimeBaseSize​(int newPrimeBaseSize)
      Re-initialize the prime base size. This is useful only for algorithms that combine relations from different prime bases.
      Parameters:
      newPrimeBaseSize -
    • collectAndProcessAQPairs

      void collectAndProcessAQPairs​(java.util.List<AQPair> aqPairs)
      Collect AQ pairs and run the matrix solver if appropriate. In a multi-threaded factoring algorithm, this method needs to be run in a block synchronized on this. This also speeds up single-threaded solvers like Block-Lanczos, because on modern CPUs single threads run at a higher clock rate.
      Parameters:
      aqPairs -
    • collectAndProcessAQPair

      void collectAndProcessAQPair​(AQPair aqPair)
      Collect a single AQ pair and run the matrix solver if appropriate. In a multi-threaded factoring algorithm, this method needs to be run in a block synchronized on this. This also speeds up single-threaded solvers like Block-Lanczos, because on modern CPUs single threads run at a higher clock rate.
      Parameters:
      aqPair -
    • getSmoothCongruenceCount

      int getSmoothCongruenceCount()
      Returns:
      number of smooth congruences found so far.
    • getSmoothCongruences

      java.util.Collection<Smooth> getSmoothCongruences()
      Returns:
      smooth congruences found so far.
    • getPartialCongruenceCount

      int getPartialCongruenceCount()
      Returns:
      number of partial congruences found so far.
    • getFactor

      java.math.BigInteger getFactor()
      Returns:
      the factor that was found or null
    • getReport

    • getCollectDuration

      long getCollectDuration()
    • getSolverDuration

      long getSolverDuration()
    • getSolverRunCount

      int getSolverRunCount()
      Returns:
      the number of solvers runs required to find a factor (should be 1)
    • getTestedNullVectorCount

      int getTestedNullVectorCount()
      Returns:
      the number of null vector tests required to find a factor
    • cleanUp

      void cleanUp()
      Release memory after a factorization.