# TwoFactorize FΒΆ

A basic package for the factorization of bivariate polynomials over a finite field. The functions here represent the base step for the multivariate factorizer.

- doFactor: (SparseUnivariatePolynomial SparseUnivariatePolynomial F, Integer, Boolean) -> Factored SparseUnivariatePolynomial SparseUnivariatePolynomial F
`doFactor(p, n, ext?)`

returns the factorisation of polynomial`p`

,`p`

is assumed to be primitive and squarefree,`n`

is degree in auxilary variable, ext? if`false`

inhibits use of extension field.

- generalSqFr: SparseUnivariatePolynomial SparseUnivariatePolynomial F -> Factored SparseUnivariatePolynomial SparseUnivariatePolynomial F
`generalSqFr(p)`

returns the square-free factorisation of polynomial`p`

, a sparse univariate polynomial (sup) over a sup over`F`

.

- generalTwoFactor: SparseUnivariatePolynomial SparseUnivariatePolynomial F -> Factored SparseUnivariatePolynomial SparseUnivariatePolynomial F
`generalTwoFactor(p)`

returns the factorisation of polynomial`p`

, a sparse univariate polynomial (sup) over a sup over`F`

.

- tryTwoFactor: SparseUnivariatePolynomial SparseUnivariatePolynomial F -> Factored SparseUnivariatePolynomial SparseUnivariatePolynomial F
`tryTwoFactor(p)`

returns the factorisation of polynomial`p`

, if it does not require using field extensions, otherwise returns`p`

unfactored (nil factorization).

- twoFactor: (SparseUnivariatePolynomial SparseUnivariatePolynomial F, Integer) -> Factored SparseUnivariatePolynomial SparseUnivariatePolynomial F
`twoFactor(p, n)`

returns the factorisation of polynomial`p`

, a sparse univariate polynomial (sup) over a sup over`F`

. Also,`p`

is assumed primitive and square-free and`n`

is the degree of the inner variable of`p`

(maximum of the degrees of the coefficients of`p`

).