# PolynomialFactorizationExplicit¶

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 Magma
- *: (Integer, %) -> %
- from AbelianGroup
- *: (NonNegativeInteger, %) -> %
- from AbelianMonoid
- *: (PositiveInteger, %) -> %
- from AbelianSemiGroup
- +: (%, %) -> %
- from AbelianSemiGroup
- -: % -> %
- from AbelianGroup
- -: (%, %) -> %
- from AbelianGroup
- =: (%, %) -> Boolean
- from BasicType
- ^: (%, NonNegativeInteger) -> %
- from MagmaWithUnit
- ^: (%, PositiveInteger) -> %
- from Magma
- ~=: (%, %) -> Boolean
- from BasicType
- annihilate?: (%, %) -> Boolean
- from Rng
- antiCommutator: (%, %) -> %
- from NonAssociativeSemiRng
- 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
- factor: % -> Factored %
- from UniqueFactorizationDomain

- 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.- gcd: (%, %) -> %
- from GcdDomain
- gcd: List % -> %
- from GcdDomain

- 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
- lcm: (%, %) -> %
- from GcdDomain
- lcm: List % -> %
- from GcdDomain
- 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
- prime?: % -> Boolean
- from UniqueFactorizationDomain
- 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 %
- from UniqueFactorizationDomain
- squareFreePart: % -> %
- from UniqueFactorizationDomain

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

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

.- subtractIfCan: (%, %) -> Union(%, failed)
- from CancellationAbelianMonoid
- unit?: % -> Boolean
- from EntireRing
- unitCanonical: % -> %
- from EntireRing
- unitNormal: % -> Record(unit: %, canonical: %, associate: %)
- from EntireRing
- zero?: % -> Boolean
- from AbelianMonoid

Algebra %

BiModule(%, %)

Module %