cc.redberry.rings.poly.univar

## 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

All Methods
Modifier and Type Method and 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