Class DistinctDegreeFactorization


  • public final class DistinctDegreeFactorization
    extends Object
    Distinct-degree factorization of univariate polynomials over finite fields.
    Since:
    1.0
    • Method Detail

      • DistinctDegreeFactorizationPlain

        public static PolynomialFactorDecomposition<UnivariatePolynomialZp64> DistinctDegreeFactorizationPlain​(UnivariatePolynomialZp64 poly)
        Performs distinct-degree factorization for square-free polynomial poly using plain incremental exponents algorithm.

        In the case of not square-free input, the algorithm works, but the resulting d.d.f. may be incomplete.

        Parameters:
        poly - the polynomial
        Returns:
        distinct-degree decomposition of poly
      • DistinctDegreeFactorizationPrecomputedExponents

        public static PolynomialFactorDecomposition<UnivariatePolynomialZp64> DistinctDegreeFactorizationPrecomputedExponents​(UnivariatePolynomialZp64 poly)
        Performs distinct-degree factorization for square-free polynomial poly using plain incremental exponents algorithm with precomputed exponents.

        In the case of not square-free input, the algorithm works, but the resulting d.d.f. may be incomplete.

        Parameters:
        poly - the polynomial
        Returns:
        distinct-degree decomposition of poly
      • DistinctDegreeFactorizationShoup

        public static <Poly extends IUnivariatePolynomial<Poly>> PolynomialFactorDecomposition<Poly> DistinctDegreeFactorizationShoup​(Poly poly)
        Performs distinct-degree factorization for square-free polynomial poly using Victor Shoup's baby step / giant step algorithm.

        In the case of not square-free input, the algorithm works, but the resulting d.d.f. may be incomplete.

        Parameters:
        poly - the polynomial
        Returns:
        distinct-degree decomposition of poly
      • DistinctDegreeFactorization

        public static PolynomialFactorDecomposition<UnivariatePolynomialZp64> DistinctDegreeFactorization​(UnivariatePolynomialZp64 poly)
        Performs distinct-degree factorization for square-free polynomial poly.

        In the case of not square-free input, the algorithm works, but the resulting d.d.f. may be incomplete.

        Parameters:
        poly - the polynomial
        Returns:
        distinct-degree decomposition of poly
      • DistinctDegreeFactorization

        public static <Poly extends IUnivariatePolynomial<Poly>> PolynomialFactorDecomposition<Poly> DistinctDegreeFactorization​(Poly poly)
        Performs distinct-degree factorization for square-free polynomial poly.

        In the case of not square-free input, the algorithm works, but the resulting d.d.f. may be incomplete.

        Parameters:
        poly - the polynomial
        Returns:
        distinct-degree decomposition of poly