UnivariatePolynomialDecompositionPackage(R, UP)¶

UnivariatePolynomialDecompositionPackage implements functional decomposition of univariate polynomial with coefficients in an IntegralDomain of CharacteristicZero.

completeDecompose: UP -> List UP if R has Field

completeDecompose(f) returns a list of factors of f for the functional decomposition of f. [f1, …, fn] means f = f1 oo fn.

decomposeIfCan: UP -> Union(Record(left: UP, right: UP), failed) if R has Field

decomposeIfCan(f) returns a functional decomposition of the polynomial f or “failed” if it has not found any.

leftFactorIfCan: (UP, UP) -> Union(UP, failed)

leftFactorIfCan(f, h) returns the left factor (g in f = g o h) of the functional decomposition of the polynomial f with given h or "failed" if g does not exist.

monicCompleteDecompose: UP -> List UP

monicCompleteDecompose(f) returns a list of factors of f for the functional decomposition of monic polynomial f. [f1, …, fn] means f = f1 oo fn.

monicDecomposeIfCan: UP -> Union(Record(left: UP, right: UP), failed)

monicDecomposeIfCan(f) returns a functional decomposition of the monic polynomial f or “failed” if it has not found any.

monicRightFactorIfCan: (UP, NonNegativeInteger) -> Union(UP, failed)

monicRightFactorIfCan(f, d) returns a candidate to be the monic right factor (h in f = g o h) of degree d of a functional decomposition of the polynomial f or "failed" if no such candidate.

rightFactorIfCan: (UP, NonNegativeInteger, R) -> Union(UP, failed)

rightFactorIfCan(f, d, c) returns a candidate to be the right factor (h in f = g o h) of degree d with leading coefficient c of a functional decomposition of the polynomial f or "failed" if no such candidate.