# MPolyCatRationalFunctionFactorizer(E, OV, R, PRF)¶

This package exports a factor operation for multivariate polynomials with coefficients which are rational functions over some ring R over which we can factor. It is used internally by packages such as primary decomposition which need to work with polynomials with rational function coefficients, i.e. themselves fractions of polynomials.

factor: PRF -> Factored PRF

factor(prf) factors a polynomial with rational function coefficients.

pushdown: (PRF, OV) -> PRF

pushdown(prf, var) pushes all top level occurrences of the variable var into the coefficient domain for the polynomial prf.

pushdterm: (SparseUnivariatePolynomial PRF, OV) -> PRF

pushdterm(monom, var) pushes all top level occurrences of the variable var into the coefficient domain for the monomial monom.

pushucoef: (SparseUnivariatePolynomial Polynomial R, OV) -> PRF

pushucoef(upoly, var) converts the anonymous univariate polynomial upoly to a polynomial in var over rational functions.

pushuconst: (Fraction Polynomial R, OV) -> PRF

pushuconst(r, var) takes a rational function and raises all occurrences of the variable var to the polynomial level.

pushup: (PRF, OV) -> PRF

pushup(prf, var) raises all occurrences of the variable var in the coefficients of the polynomial prf back to the polynomial level.

totalfract: PRF -> Record(sup: Polynomial R, inf: Polynomial R)

totalfract(prf) takes a polynomial whose coefficients are themselves fractions of polynomials and returns a record containing the numerator and denominator resulting from putting prf over a common denominator.