Package cc.redberry.rings.poly.univar
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 Summary
Modifier and Type Method Description static PolynomialFactorDecomposition<UnivariatePolynomialZp64>
DistinctDegreeFactorization(UnivariatePolynomialZp64 poly)
Performs distinct-degree factorization for square-free polynomialpoly
.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>DistinctDegreeFactorization(Poly poly)
Performs distinct-degree factorization for square-free polynomialpoly
.static PolynomialFactorDecomposition<UnivariatePolynomialZp64>
DistinctDegreeFactorizationPlain(UnivariatePolynomialZp64 poly)
Performs distinct-degree factorization for square-free polynomialpoly
using plain incremental exponents algorithm.static PolynomialFactorDecomposition<UnivariatePolynomialZp64>
DistinctDegreeFactorizationPrecomputedExponents(UnivariatePolynomialZp64 poly)
Performs distinct-degree factorization for square-free polynomialpoly
using plain incremental exponents algorithm with precomputed exponents.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>DistinctDegreeFactorizationShoup(Poly poly)
Performs distinct-degree factorization for square-free polynomialpoly
using Victor Shoup's baby step / giant step algorithm.
-
Method Details
-
DistinctDegreeFactorizationPlain
public static PolynomialFactorDecomposition<UnivariatePolynomialZp64> DistinctDegreeFactorizationPlain(UnivariatePolynomialZp64 poly)Performs distinct-degree factorization for square-free polynomialpoly
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 polynomialpoly
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 polynomialpoly
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 polynomialpoly
.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 polynomialpoly
.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
-