# PolynomialFactorizationExplicit¶

catdef.spad line 1219 [edit on github]

This is the category of domains that know “enough” about themselves in order to factor univariate polynomials over themselves.

- 0: %
from AbelianMonoid

- 1: %
from MagmaWithUnit

- *: (%, %) -> %
from LeftModule %

- *: (Integer, %) -> %
from AbelianGroup

- *: (NonNegativeInteger, %) -> %
from AbelianMonoid

- *: (PositiveInteger, %) -> %
from AbelianSemiGroup

- +: (%, %) -> %
from AbelianSemiGroup

- -: % -> %
from AbelianGroup

- -: (%, %) -> %
from AbelianGroup

- ^: (%, NonNegativeInteger) -> %
from MagmaWithUnit

- ^: (%, PositiveInteger) -> %
from Magma

- annihilate?: (%, %) -> Boolean
from Rng

- antiCommutator: (%, %) -> %

- associates?: (%, %) -> Boolean
from EntireRing

- associator: (%, %, %) -> %
from NonAssociativeRng

- characteristic: () -> NonNegativeInteger
from NonAssociativeRing

- charthRoot: % -> Union(%, failed) if % has CharacteristicNonZero
`charthRoot(r)`

returns the`p`

`-`

th root of`r`

, or “failed” if none exists in the domain.

- coerce: % -> %
from Algebra %

- coerce: % -> OutputForm
from CoercibleTo OutputForm

- coerce: Integer -> %
from NonAssociativeRing

- commutator: (%, %) -> %
from NonAssociativeRng

- conditionP: Matrix % -> Union(Vector %, failed) if % has CharacteristicNonZero
`conditionP(m)`

returns a vector of elements, not all zero, whose`p`

`-`

th powers (`p`

is the characteristic of the domain) are a solution of the homogenous linear system represented by`m`

, or “failed” is there is no such vector.

- exquo: (%, %) -> Union(%, failed)
from EntireRing

- factorPolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
`factorPolynomial(p)`

returns the factorization into irreducibles of the univariate polynomial`p`

.

- factorSquareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
`factorSquareFreePolynomial(p)`

factors the univariate polynomial`p`

into irreducibles where`p`

is known to be square free and primitive with respect to its main variable.

- gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
`gcdPolynomial(p, q)`

returns the`gcd`

of the univariate polynomials`p`

`qnd`

`q`

.

- hash: % -> SingleInteger
from SetCategory

- hashUpdate!: (HashState, %) -> HashState
from SetCategory

- latex: % -> String
from SetCategory

- lcmCoef: (%, %) -> Record(llcm_res: %, coeff1: %, coeff2: %)
from LeftOreRing

- leftPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit

- leftPower: (%, PositiveInteger) -> %
from Magma

- leftRecip: % -> Union(%, failed)
from MagmaWithUnit

- one?: % -> Boolean
from MagmaWithUnit

- opposite?: (%, %) -> Boolean
from AbelianMonoid

- recip: % -> Union(%, failed)
from MagmaWithUnit

- rightPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit

- rightPower: (%, PositiveInteger) -> %
from Magma

- rightRecip: % -> Union(%, failed)
from MagmaWithUnit

- sample: %
from AbelianMonoid

- solveLinearPolynomialEquation: (List SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %, failed)
`solveLinearPolynomialEquation([f1, ..., fn], g)`

(where the`fi`

are relatively prime to each other) returns a list of`ai`

such that`g/prod fi = sum ai/fi`

or returns “failed” if no such list of`ai`

`'s`

exists.

- squareFree: % -> Factored %

- squareFreePart: % -> %

- squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
`squareFreePolynomial(p)`

returns the square-free factorization of the univariate polynomial`p`

.

- subtractIfCan: (%, %) -> Union(%, failed)

- unit?: % -> Boolean
from EntireRing

- unitCanonical: % -> %
from EntireRing

- unitNormal: % -> Record(unit: %, canonical: %, associate: %)
from EntireRing

- zero?: % -> Boolean
from AbelianMonoid

Algebra %

BiModule(%, %)

Module %