Class CFrac


  • public class CFrac
    extends FactorAlgorithm
    CFrac = Shanks' SQUFOF algorithm + carry along continuant recurrence + collect smooth relations + LinAlg solver.

    The original CFrac was implemented by Morrison&Brillhart intending to factor the 7.th Fermat number F7 with 39 digits (~130 bits). Now this number can be factored in about three seconds. Stopping criterion for a single k: after complete period or at a maximum number of iterations. Since 2017-09 Knuth-Schroeppel multipliers have been implemented, too.
    Author:
    Tilman Neumann
    • Constructor Detail

      • CFrac

        public CFrac​(boolean use_all_i,
                     int stopRoot,
                     float stopMult,
                     float C,
                     float maxQRestExponent,
                     TDiv_CF auxFactorizer,
                     int extraCongruences,
                     MatrixSolver matrixSolver,
                     int ks_adjust)
        Standard constructor.
        Parameters:
        use_all_i -
        stopRoot - order of the root to compute the maximum number of iterations
        stopMult - multiplier to compute the maximum number of iterations
        C - multiplier for prime base size
        maxQRestExponent -
        auxFactorizer - the algorithm to find smooth Q
        extraCongruences - the number of surplus congruences we collect to have a greater chance that the equation system solves.
        matrixSolver - matrix solver for the smooth congruence equation system
        ks_adjust -
    • Method Detail

      • getName

        public String getName()
        Specified by:
        getName in class FactorAlgorithm
        Returns:
        The name of the algorithm, possibly including important parameters.
      • main

        public static void main​(String[] args)
        Standalone test. Test numbers: F7 = 340282366920938463463374607431768211457
        Parameters:
        args - ignored