UnivariatePolynomialDecompositionPackage(R, UP)

updecomp.spad line 41 [edit on github]

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 o ... o 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 o ... o 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.