Factor
inert factor function
Calling Sequence
Parameters
Description
Examples
References
Factor(a, K)
a
-
multivariate polynomial
K
optional specification of the algebraic extension
The Factor function is a placeholder for representing the factorization of the polynomial a over a unique factorization domain. It is used in conjunction with either mod or evala, which define the coefficient domain as described below.
The call Factor(a) mod p computes the factorization of a over the integers modulo p a prime integer. The polynomial a must have rational coefficients or coefficients from a finite field specified by RootOfs.
The call Factor(a, K) mod p and computes the factorization of the polynomial a over the Galois field (finite field) defined by the algebraic extension K over the integers mod p a prime integer. The extension K is specified by a RootOf and must be irreducible over the integers mod p.
The call evala(Factor(a, K)) computes the factorization of the polynomial a over an algebraic number (or function) field defined by the extension K, which is specified as a RootOf or a set of RootOfs. The polynomial a must have algebraic number (or function) coefficients.
Factorization methods available are lenstra, trager, and linear. The default is trager. One selects the method by adding the name to the option set (see evala).
For the factorization of a univariate polynomial over an algebraic number field, use Lenstra's factorizer. This method is sometimes faster for small degree fields than the default factorizer.
For the factorization of a univariate polynomial over a finite field, Factor uses the Cantor Zassenhaus distinct degree algorithm. Berlekamp's algorithm is an alternate method that is more efficient in cases involving large p and a polynomial a that is irreducible or has few factors (see Berlekamp).
The Domains package is implicitly used to factor multivariate polynomials over a Galois field defined by a single extension. It can also be used explicitly to factor over a tower of multiple algebraic extensions.
Factor⁡x2+3⁢x+3mod7
x+6⁢x+4
alias⁡α=RootOf⁡x2+x+1:
Factor⁡x3+1,αmod2
x+α⁢x+α+1⁢x+1
alias⁡sqrt2=RootOf⁡x2−2:
evala⁡Factor⁡x2−2,sqrt2
x−sqrt2⁢x+sqrt2
evala⁡Factor⁡x2−2,sqrt2,lenstra
evala⁡Factor⁡x2−2⁢y2,sqrt2
−sqrt2⁢y+x⁢sqrt2⁢y+x
alias⁡β=RootOf⁡y2−x,y:
evala⁡Factor⁡x⁢y2−1,β
x⁢y+βx⁢y−βx
expand⁡x3+y5+2⁢x⁢y2+3mod7
x⁢y7+x4⁢y2+3⁢y5+3⁢x3+2⁢x⁢y2+6
Factor⁡mod7
y5+x3+2⁢x⁢y2+3
Factor⁡x2+2⁢x⁢y+y2+1+x+y,αmod5
y+x+α+1⁢y+x+4⁢α
Factor⁡x2⁢y+x⁢y2+2⁢α⁢x⁢y+α⁢x2+4⁢α⁢x+y+αmod5
y+x+α⁢α⁢x+x⁢y+1
Bernardin, Laurent, and Monagan, Michael B., "Efficient Multivariate Factorization over Finite Fields." In Proceedings of AAECC '97, pp. 15-28. Edited by Teo Mora and Harold F. Mattson. Springer, 1997.
Lenstra, A. K., "Lattices and Factorization of Polynomials over Algebraic Number Fields." In Proceedings of EUROCAM '82, pp. 32-39. Edited by Jacques Calmet. Springer, 1982.
See Also
AFactor
AFactors
alias
Berlekamp
Domains
evala
Expand
factor
Factors
ifactor
mod
PolynomialTools[Split]
RootOf
Sqrfree
Download Help Document