## Class 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 polynomial `poly`.
`static <Poly extends IUnivariatePolynomial<Poly>>PolynomialFactorDecomposition<Poly>` `DistinctDegreeFactorization​(Poly poly)`
Performs distinct-degree factorization for square-free polynomial `poly`.
`static PolynomialFactorDecomposition<UnivariatePolynomialZp64>` `DistinctDegreeFactorizationPlain​(UnivariatePolynomialZp64 poly)`
Performs distinct-degree factorization for square-free polynomial `poly` using plain incremental exponents algorithm.
`static PolynomialFactorDecomposition<UnivariatePolynomialZp64>` `DistinctDegreeFactorizationPrecomputedExponents​(UnivariatePolynomialZp64 poly)`
Performs distinct-degree factorization for square-free polynomial `poly` 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 polynomial `poly` using Victor Shoup's baby step / giant step algorithm.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### 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`