Package 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
Modifier and Type Method Description static <T extends IUnivariatePolynomial<T>>
booleanisSquareFree(T poly)
Returnstrue
ifpoly
is square-free andfalse
otherwisestatic <T extends IUnivariatePolynomial<T>>
PolynomialFactorDecomposition<T>SquareFreeFactorization(T poly)
Performs square-free factorization of apoly
.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>SquareFreeFactorizationMusser(Poly poly)
Performs square-free factorization of apoly
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 apoly
which coefficient ring has zero characteristic using Yun's algorithm.static <T extends IUnivariatePolynomial<T>>
TSquareFreePart(T poly)
Returns square-free part of thepoly
-
Method Details
-
isSquareFree
Returnstrue
ifpoly
is square-free andfalse
otherwise- Parameters:
poly
- the polynomial- Returns:
true
ifpoly
is square-free andfalse
otherwise
-
SquareFreeFactorization
public static <T extends IUnivariatePolynomial<T>> PolynomialFactorDecomposition<T> SquareFreeFactorization(T poly)Performs square-free factorization of apoly
.- Parameters:
poly
- the polynomial- Returns:
- square-free decomposition
-
SquareFreePart
Returns square-free part of thepoly
- 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 apoly
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 apoly
using Musser's algorithm (both zero and non-zero characteristic of coefficient ring allowed).- Parameters:
poly
- the polynomial- Returns:
- square-free decomposition
-