Class DistinctDegreeFactorization

java.lang.Object
cc.redberry.rings.poly.univar.DistinctDegreeFactorization

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

    • 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