# MultivariateSquareFree(E, OV, R, P)¶

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

Author : `P`

.Gianni This package provides the functions for the computation of the square free decomposition of a multivariate polynomial. It uses the package GenExEuclid for the resolution of the equation `Af + Bg = h`

and its generalization to `n`

polynomials over an integral domain and the package `MultivariateLifting`

for the “multivariate” lifting.

- check: (List Record(factor: SparseUnivariatePolynomial R, exponent: Integer), List Record(factor: SparseUnivariatePolynomial R, exponent: Integer)) -> Boolean
`check should`

be local

- compdegd: List Record(factor: SparseUnivariatePolynomial R, exponent: Integer) -> Integer
`compdegd should`

be local

- consnewpol: (SparseUnivariatePolynomial P, SparseUnivariatePolynomial R, Integer) -> Record(pol: SparseUnivariatePolynomial P, polval: SparseUnivariatePolynomial R)
`consnewpol should`

be local

- intChoose: (SparseUnivariatePolynomial P, List OV, List List R) -> Record(upol: SparseUnivariatePolynomial R, Lval: List R, Lfact: List Record(factor: SparseUnivariatePolynomial R, exponent: Integer), ctpol: R)
`intChoose should`

be local

- lift: (SparseUnivariatePolynomial P, SparseUnivariatePolynomial R, SparseUnivariatePolynomial R, P, List OV, List NonNegativeInteger, List R) -> Union(List SparseUnivariatePolynomial P, failed)
`lift should`

be local

- myDegree: (SparseUnivariatePolynomial P, List OV, NonNegativeInteger) -> List NonNegativeInteger
`myDegree should`

be local

- normDeriv2: (SparseUnivariatePolynomial R, Integer) -> SparseUnivariatePolynomial R
`normDeriv2 should`

be local

- nsqfree: (SparseUnivariatePolynomial P, List OV, List List R) -> Record(unitPart: P, suPart: List Record(factor: SparseUnivariatePolynomial P, exponent: Integer))
`nsqfree should`

be local

- squareFree: P -> Factored P
`squareFree(p)`

computes the square free decomposition of a multivariate polynomial`p`

.

- squareFree: SparseUnivariatePolynomial P -> Factored SparseUnivariatePolynomial P
`squareFree(p)`

computes the square free decomposition of a multivariate polynomial`p`

presented as a univariate polynomial with multivariate coefficients.

- squareFreePrim: P -> Factored P
`squareFreePrim(p)`

compute the square free decomposition of a primitive multivariate polynomial`p`

.

- univcase: (P, OV) -> Factored P
`univcase should`

be local