## Class UnivariateSquareFreeFactorization

• java.lang.Object
• cc.redberry.rings.poly.univar.UnivariateSquareFreeFactorization

• ```public final class UnivariateSquareFreeFactorization
extends Object```
Square-free factorization of univariate polynomials over Z and Zp.
Since:
1.0
• ### Method Summary

Modifier and Type Method Description
`static <T extends IUnivariatePolynomial<T>>boolean` `isSquareFree​(T poly)`
Returns `true` if `poly` is square-free and `false` otherwise
`static <T extends IUnivariatePolynomial<T>>PolynomialFactorDecomposition<T>` `SquareFreeFactorization​(T poly)`
Performs square-free factorization of a `poly`.
`static <Poly extends IUnivariatePolynomial<Poly>>PolynomialFactorDecomposition<Poly>` `SquareFreeFactorizationMusser​(Poly poly)`
Performs square-free factorization of a `poly` using Musser's algorithm (both zero and non-zero characteristic of coefficient ring allowed).
`static <Poly extends IUnivariatePolynomial<Poly>>PolynomialFactorDecomposition<Poly>` `SquareFreeFactorizationMusserZeroCharacteristics​(Poly poly)`
Performs square-free factorization of a poly which coefficient ring has zero characteristic using Musser's algorithm.
`static <Poly extends IUnivariatePolynomial<Poly>>PolynomialFactorDecomposition<Poly>` `SquareFreeFactorizationYunZeroCharacteristics​(Poly poly)`
Performs square-free factorization of a `poly` which coefficient ring has zero characteristic using Yun's algorithm.
`static <T extends IUnivariatePolynomial<T>>T` `SquareFreePart​(T poly)`
Returns square-free part of the `poly`
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Method Detail

• #### isSquareFree

`public static <T extends IUnivariatePolynomial<T>> boolean isSquareFree​(T poly)`
Returns `true` if `poly` is square-free and `false` otherwise
Parameters:
`poly` - the polynomial
Returns:
`true` if `poly` is square-free and `false` otherwise
• #### SquareFreeFactorization

`public static <T extends IUnivariatePolynomial<T>> PolynomialFactorDecomposition<T> SquareFreeFactorization​(T poly)`
Performs square-free factorization of a `poly`.
Parameters:
`poly` - the polynomial
Returns:
square-free decomposition
• #### SquareFreePart

`public static <T extends IUnivariatePolynomial<T>> T SquareFreePart​(T poly)`
Returns square-free part of the `poly`
Parameters:
`poly` - the polynomial
Returns:
square free part
• #### SquareFreeFactorizationYunZeroCharacteristics

`public static <Poly extends IUnivariatePolynomial<Poly>> PolynomialFactorDecomposition<Poly> SquareFreeFactorizationYunZeroCharacteristics​(Poly poly)`
Performs square-free factorization of a `poly` which coefficient ring has zero characteristic using Yun's algorithm.
Parameters:
`poly` - the polynomial
Returns:
square-free decomposition
• #### SquareFreeFactorizationMusserZeroCharacteristics

`public static <Poly extends IUnivariatePolynomial<Poly>> PolynomialFactorDecomposition<Poly> SquareFreeFactorizationMusserZeroCharacteristics​(Poly poly)`
Performs square-free factorization of a poly which coefficient ring has zero characteristic using Musser's algorithm.
Parameters:
`poly` - the polynomial
Returns:
square-free decomposition
• #### SquareFreeFactorizationMusser

`public static <Poly extends IUnivariatePolynomial<Poly>> PolynomialFactorDecomposition<Poly> SquareFreeFactorizationMusser​(Poly poly)`
Performs square-free factorization of a `poly` using Musser's algorithm (both zero and non-zero characteristic of coefficient ring allowed).
Parameters:
`poly` - the polynomial
Returns:
square-free decomposition