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
All Methods Static Methods Concrete Methods 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 polynomialpolyusing plain incremental exponents algorithm.static PolynomialFactorDecomposition<UnivariatePolynomialZp64>DistinctDegreeFactorizationPrecomputedExponents(UnivariatePolynomialZp64 poly)Performs distinct-degree factorization for square-free polynomialpolyusing plain incremental exponents algorithm with precomputed exponents.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>DistinctDegreeFactorizationShoup(Poly poly)Performs distinct-degree factorization for square-free polynomialpolyusing Victor Shoup's baby step / giant step algorithm.
-
-
-
Method Detail
-
DistinctDegreeFactorizationPlain
public static PolynomialFactorDecomposition<UnivariatePolynomialZp64> DistinctDegreeFactorizationPlain(UnivariatePolynomialZp64 poly)
Performs distinct-degree factorization for square-free polynomialpolyusing 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 polynomialpolyusing 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 polynomialpolyusing 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
-
-