# FactoringUtilities(E, OV, R, P)ΒΆ

- E: OrderedAbelianMonoidSup
- OV: OrderedSet
- R: Ring
- P: PolynomialCategory(R, E, OV)

This package provides utilities used by the factorizers which operate on polynomials represented as univariate polynomials with multivariate coefficients.

- completeEval: (SparseUnivariatePolynomial P, List OV, List R) -> SparseUnivariatePolynomial R
`completeEval(upoly, lvar, lval)`

evaluates the polynomial`upoly`

with each variable in`lvar`

replaced by the corresponding value in lval. Substitutions are done for all variables in`upoly`

producing a univariate polynomial over`R`

.

- degree: (SparseUnivariatePolynomial P, List OV) -> List NonNegativeInteger
`degree(upoly, lvar)`

returns a list containing the maximum degree for each variable in lvar.

- lowerPolynomial: SparseUnivariatePolynomial P -> SparseUnivariatePolynomial R
`lowerPolynomial(upoly)`

converts`upoly`

to be a univariate polynomial over`R`

. An error if the coefficients contain variables.

- normalDeriv: (SparseUnivariatePolynomial P, Integer) -> SparseUnivariatePolynomial P
`normalDeriv(poly, i)`

computes the`i`

th derivative of`poly`

divided by i!.

- raisePolynomial: SparseUnivariatePolynomial R -> SparseUnivariatePolynomial P
`raisePolynomial(rpoly)`

converts`rpoly`

from a univariate polynomial over`r`

to be a univariate polynomial with polynomial coefficients.

- ran: Integer -> R
`ran(k)`

computes a random integer between`-k`

and`k`

as a member of`R`

.

- variables: SparseUnivariatePolynomial P -> List OV
`variables(upoly)`

returns the list of variables for the coefficients of`upoly`

.