|
Factorization is available for polynomials over series rings defined over
finite fields.
We recommend constructing polynomials from sequences rather than by addition
of terms, especially over fields, to avoid some precision loss. For example,
x4 + t will not have full precision in the constant coefficient as there will
be a O term in the constant coefficient of x4 which will reduce its precision
as a field element.
The equivalent polynomial Polynomial([t, 0, 0, 0, 1]) will have more
precision than that constructed as x4 + t.
HenselLift(f, L) : RngUPolElt[RngSerExt], SeqEnum[RngUPolElt] -> [RngUPolElt]
Given a polynomial f over a series ring over a finite field
or an extension of a series ring
and a factorization L of f to precision 1 return a factorization of f
known to the full precision of the coefficient ring of f.
Factorization(f) : RngUPolElt[RngSerLaur[FldFin]] -> [ < RngUPolElt[RngSerLaur], RngIntElt > ], RngSerLaurElt
Factorization(f) : RngUPolElt[RngSerExt] -> [ < RngUPolElt[RngSerExt], RngIntElt > ], RngSerExtElt
Certificates: BoolElt Default: false
Ideals: BoolElt Default: false
Extensions: BoolElt Default: false
The factorization of the polynomial f over a power series ring, laurent series
field over a finite field or an extension of either into irreducibles.
If Certificates is set to true, a two-element certificate for each
factor, proving its irreducibility, is returned.
If Ideals is set to true, two generators of some ideal for each factor
are returned within the certificates.
If Extensions is set to true, an extension for each factor is returned
within the certificates.
We illustrate factorizations over series rings and the extensions which
can be gained through them.
> P<t> := PowerSeriesRing(GF(101));
> R<x> := PolynomialRing(P);
> Factorization(x^5 + t*x^4 - t^2*x^3 + (1 + t^20)*x^2 + t*x + t^6);
[
<(1 + O(t^20))*x + t^5 + O(t^8), 1>,
<(1 + O(t^20))*x + t + 100*t^4 + 100*t^5 + t^7 + O(t^8), 1>,
<(1 + O(t^20))*x + 1 + 34*t^2 + 34*t^3 + 34*t^4 + 90*t^5 + 29*t^6 + 16*t^8 +
32*t^9 + 6*t^10 + 66*t^11 + 41*t^12 + 93*t^13 + t^14 + 69*t^15 + 8*t^16
+ 61*t^17 + 86*t^18 + 19*t^19 + O(t^20), 1>,
<(1 + O(t^20))*x^2 + (100 + 67*t^2 + 67*t^3 + 68*t^4 + 11*t^5 + 72*t^6 +
100*t^7 + 85*t^8 + 69*t^9 + 94*t^10 + 31*t^11 + 59*t^12 + 16*t^13 +
14*t^14 + 35*t^15 + 77*t^16 + 28*t^17 + 33*t^18 + 72*t^19 + O(t^20))*x +
1 + 67*t^2 + 68*t^3 + 11*t^4 + 67*t^5 + 57*t^6 + 16*t^7 + 57*t^8 +
21*t^9 + 68*t^10 + 68*t^11 + 61*t^12 + 98*t^13 + 4*t^14 + 21*t^15 +
7*t^16 + 95*t^17 + 23*t^18 + 76*t^19 + O(t^20), 1>
]
1 + O(t^20)
> P<t> := PowerSeriesRing(GF(101), 50);
> R<x> := PolynomialRing(P);
> Factorization(x^5 + t*x^4 - t^2*x^3 + (1 + t^20)*x^2 + t*x + t^6 :
> Extensions);
[
<x + t^5 + t^9 + 2*t^13 + t^16 + 5*t^17 + 6*t^20 + 14*t^21 + 26*t^24 +
42*t^25 + 3*t^27 + 4*t^28 + 32*t^29 + 35*t^31 + 10*t^32 + 29*t^33 +
46*t^35 + t^36 + 31*t^37 + O(t^38), 1>,
<x + t + 100*t^4 + 100*t^5 + t^7 + 100*t^9 + t^10 + 4*t^11 + t^12 + 91*t^13
+ 86*t^14 + 98*t^15 + 15*t^16 + 7*t^17 + 83*t^18 + 10*t^19 + 23*t^20 +
54*t^21 + 47*t^22 + 72*t^23 + 87*t^24 + 55*t^25 + 4*t^26 + 15*t^27 +
90*t^28 + 82*t^29 + 97*t^30 + 15*t^31 + 23*t^32 + 86*t^33 + 57*t^34 +
10*t^35 + 79*t^36 + 52*t^37 + O(t^38), 1>,
<x + 1 + 34*t^2 + 34*t^3 + 34*t^4 + 90*t^5 + 29*t^6 + 16*t^8 + 32*t^9 +
6*t^10 + 66*t^11 + 41*t^12 + 93*t^13 + t^14 + 69*t^15 + 8*t^16 + 61*t^17
+ 86*t^18 + 19*t^19 + 47*t^20 + 11*t^21 + 42*t^22 + 38*t^23 + 46*t^24 +
90*t^25 + 14*t^26 + 7*t^27 + 89*t^28 + 85*t^29 + 70*t^30 + 24*t^31 +
28*t^32 + 71*t^33 + 53*t^34 + 55*t^35 + 90*t^36 + 26*t^37 + 4*t^38 +
56*t^39 + 44*t^40 + 8*t^41 + 25*t^42 + 94*t^43 + 14*t^44 + 92*t^45 +
56*t^46 + 83*t^47 + 26*t^48 + 41*t^49 + O(t^50), 1>,
<x^2 + (100 + 67*t^2 + 67*t^3 + 68*t^4 + 11*t^5 + 72*t^6 + 100*t^7 + 85*t^8
+ 69*t^9 + 94*t^10 + 31*t^11 + 59*t^12 + 16*t^13 + 14*t^14 + 35*t^15 +
77*t^16 + 28*t^17 + 33*t^18 + 72*t^19 + 25*t^20 + 22*t^21 + 12*t^22 +
92*t^23 + 43*t^24 + 15*t^25 + 83*t^26 + 76*t^27 + 19*t^28 + 3*t^29 +
35*t^30 + 27*t^31 + 40*t^32 + 16*t^33 + 92*t^34 + 91*t^35 + 32*t^36 +
93*t^37 + 84*t^38 + 98*t^39 + 85*t^40 + 54*t^41 + 25*t^42 + 88*t^43 +
35*t^44 + 17*t^45 + t^46 + 39*t^47 + 89*t^48 + 67*t^49 + O(t^50))*x + 1
+ 67*t^2 + 68*t^3 + 11*t^4 + 67*t^5 + 57*t^6 + 16*t^7 + 57*t^8 + 21*t^9
+ 68*t^10 + 68*t^11 + 61*t^12 + 98*t^13 + 4*t^14 + 21*t^15 + 7*t^16 +
95*t^17 + 23*t^18 + 76*t^19 + 62*t^20 + 59*t^21 + 66*t^22 + 35*t^23 +
41*t^24 + 45*t^25 + 32*t^26 + 56*t^27 + 35*t^28 + 19*t^29 + 21*t^30 +
59*t^31 + 50*t^32 + 72*t^33 + 58*t^34 + 75*t^35 + 59*t^36 + 76*t^37 +
83*t^38 + 66*t^39 + 6*t^40 + 8*t^41 + 94*t^42 + 77*t^43 + 100*t^44 +
30*t^45 + 72*t^46 + 26*t^47 + 54*t^48 + 21*t^49 + O(t^50), 1>
]
1 + O(t^50)
[
rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt,
IdealGen1, IdealGen2: RngUPolElt, Extension> |
F := 1,
Rho := 1 + O($.1^50),
E := 1,
Pi := $.1 + O($.1^50),
Extension := Power series ring in t over GF(101) with fixed absolute
precision 50>,
rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt,
IdealGen1, IdealGen2: RngUPolElt, Extension> |
F := 1,
Rho := 1 + O($.1^50),
E := 1,
Pi := $.1 + O($.1^50),
Extension := Power series ring in t over GF(101) with fixed absolute
precision 50>,
rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt,
IdealGen1, IdealGen2: RngUPolElt, Extension> |
F := 1,
Rho := 1 + O($.1^50),
E := 1,
Pi := $.1 + O($.1^50),
Extension := Power series ring in t over GF(101) with fixed absolute
precision 50>,
rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt,
IdealGen1, IdealGen2: RngUPolElt, Extension> |
F := 2,
Rho := (1 + O($.1^50))*$.1 + O($.1^50),
E := 1,
Pi := $.1 + O($.1^50),
Extension := Extension of Power series ring in t over GF(101) with fixed
absolute precision 50 by x^2 + (100 + O(t^50))*x + 1 + O(t^50)>
]
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|