33
44EXAMPLES::
55
6- sage: p = 5
6+ sage: p = 13
77 sage: x = PolynomialRing(GF(p),"x").gen()
8- sage: C = CyclicCover(6 , x^6 + 1)
8+ sage: C = CyclicCover(4 , x^4 + 1)
99 sage: C.frobenius_polynomial()
10- x^20 + 50 *x^18 + 1125 *x^16 + 15000 *x^14 + 131250 *x^12 + 787500*x^10 + 3281250*x^8 + 9375000*x^6 + 17578125*x^4 + 19531250*x^2 + 9765625
10+ x^6 - 6 *x^5 + 3 *x^4 + 60 *x^3 + 39 *x^2 - 1014*x + 2197
1111 sage: R.<t> = PowerSeriesRing(Integers())
12- sage: C.projective_closure().zeta_series(4 ,t)
13- 1 + 6 *t + 81 *t^2 + 456*t^3 + 3456*t^4 + O(t^5 )
12+ sage: C.projective_closure().zeta_series(2 ,t)
13+ 1 + 8 *t + 102 *t^2 + O(t^3 )
1414 sage: C.frobenius_polynomial().reverse()(t)/((1-t)*(1-p*t)) + O(t^5)
15- 1 + 6 *t + 81 *t^2 + 456 *t^3 + 3456 *t^4 + O(t^5)
15+ 1 + 8 *t + 102 *t^2 + 1384 *t^3 + 18089 *t^4 + O(t^5)
1616
1717
1818 sage: p = 49999
1919 sage: x = PolynomialRing(GF(p),"x").gen()
20- sage: CyclicCover(5, x^5 + x).frobenius_polynomial()
20+ sage: CyclicCover(5, x^5 + x).frobenius_polynomial() # long time
2121 x^12 + 299994*x^10 + 37498500015*x^8 + 2499850002999980*x^6 + 93742500224997000015*x^4 + 1874812507499850001499994*x^2 + 15623125093747500037499700001
22- sage: CyclicCover(5, 2*x^5 + x).frobenius_polynomial()
22+ sage: CyclicCover(5, 2*x^5 + x).frobenius_polynomial() # long time
2323 x^12 + 299994*x^10 + 37498500015*x^8 + 2499850002999980*x^6 + 93742500224997000015*x^4 + 1874812507499850001499994*x^2 + 15623125093747500037499700001
2424
2525 sage: p = 107
@@ -92,11 +92,11 @@ def _N0_nodenominators(p, g, n):
9292
9393 TESTS::
9494
95- sage: sage.schemes.cyclic_covers.cycliccover_finite_field._N0_nodenominators(4, 4999 , 5)
96- 12499
95+ sage: sage.schemes.cyclic_covers.cycliccover_finite_field._N0_nodenominators(4999, 4 , 5)
96+ 11
9797 """
9898 return max (
99- [ ceil (log (2 * (2 * g ) / i , p ) + (n * i ) / ZZ (2 )) for i in range (1 , g + 1 )]
99+ ceil (log (2 * (2 * g ) / ZZ ( i ) , p ) + (n * i ) / ZZ (2 )) for i in range (1 , g + 1 )
100100 )
101101
102102
@@ -105,16 +105,16 @@ def __init__(self, AA, r, f, names=None, verbose=0):
105105 """
106106 EXAMPLES::
107107
108- sage: p = 5
108+ sage: p = 13
109109 sage: x = PolynomialRing(GF(p),"x").gen()
110- sage: C = CyclicCover(6 , x^6 + 1)
110+ sage: C = CyclicCover(4 , x^4 + 1)
111111 sage: C.frobenius_polynomial()
112- x^20 + 50 *x^18 + 1125 *x^16 + 15000 *x^14 + 131250 *x^12 + 787500*x^10 + 3281250*x^8 + 9375000*x^6 + 17578125*x^4 + 19531250*x^2 + 9765625
112+ x^6 - 6 *x^5 + 3 *x^4 + 60 *x^3 + 39 *x^2 - 1014*x + 2197
113113 sage: R.<t> = PowerSeriesRing(Integers())
114- sage: C.projective_closure().zeta_series(4 ,t)
115- 1 + 6 *t + 81 *t^2 + 456*t^3 + 3456*t^4 + O(t^5 )
114+ sage: C.projective_closure().zeta_series(2 ,t)
115+ 1 + 8 *t + 102 *t^2 + O(t^3 )
116116 sage: C.frobenius_polynomial().reverse()(t)/((1-t)*(1-p*t)) + O(t^5)
117- 1 + 6 *t + 81 *t^2 + 456 *t^3 + 3456 *t^4 + O(t^5)
117+ 1 + 8 *t + 102 *t^2 + 1384 *t^3 + 18089 *t^4 + O(t^5)
118118
119119 """
120120 cycliccover_generic .CyclicCover_generic .__init__ (self , AA , r , f , names = names )
@@ -1078,7 +1078,7 @@ def frobenius_polynomial(self):
10781078
10791079 sage: p = 11
10801080 sage: x = PolynomialRing(GF(p),"x").gen()
1081- sage: f = x^9 + 4*x^2 + 10*x + 4
1081+ sage: f = x^7 + 4*x^2 + 10*x + 4
10821082 sage: CyclicCover(2, f).frobenius_polynomial() == \
10831083 ....: HyperellipticCurve(f).frobenius_polynomial()
10841084 True
@@ -1094,7 +1094,7 @@ def frobenius_polynomial(self):
10941094 sage: x = PolynomialRing(GF(p),"x").gen()
10951095 sage: f = x^9 + 4*x^2 + 10*x + 4
10961096 sage: CyclicCover(2, f).frobenius_polynomial() == \
1097- ....: HyperellipticCurve(f).frobenius_polynomial()
1097+ ....: HyperellipticCurve(f).frobenius_polynomial() # long time
10981098 True
10991099 sage: f = 2*x^5 + 4*x^3 + x^2 + 2*x + 1
11001100 sage: CyclicCover(2, f).frobenius_polynomial() == \
@@ -1107,10 +1107,13 @@ def frobenius_polynomial(self):
11071107 sage: x = PolynomialRing(GF(p),"x").gen()
11081108 sage: CyclicCover(3, x^4 + 4*x^3 + 9*x^2 + 3*x + 1).frobenius_polynomial()
11091109 x^6 + 21*x^4 + 231*x^2 + 1331
1110- sage: CyclicCover(4,x^5 + x + 1).frobenius_polynomial()
1111- x^12 - 4*x^11 + 38 *x^10 - 140*x^9 + 743*x^8 - 2200*x^7 + 9812*x^6 - 24200*x^ 5 + 89903 *x^4 - 186340*x^3 + 556358 *x^2 - 644204 *x + 1771561
1110+ sage: CyclicCover(4, x^3 + x + 1).frobenius_polynomial()
1111+ x^6 + 2 *x^5 + 11 *x^4 + 121 *x^2 + 242 *x + 1331
11121112 sage: p = 4999
11131113 sage: x = PolynomialRing(GF(p),"x").gen()
1114+ sage: CyclicCover(4, x^3 - 1).frobenius_polynomial() == \
1115+ ....: CyclicCover(3, x^4 + 1).frobenius_polynomial()
1116+ True
11141117 sage: CyclicCover(3, x^4 + 4*x^3 + 9*x^2 + 3*x + 1).frobenius_polynomial()
11151118 x^6 + 180*x^5 + 20988*x^4 + 1854349*x^3 + 104919012*x^2 + 4498200180*x + 124925014999
11161119 sage: CyclicCover(4,x^5 + x + 1).frobenius_polynomial()
@@ -1125,22 +1128,22 @@ def frobenius_polynomial(self):
11251128
11261129 Non-superelliptic curves::
11271130
1128- sage: p = 5
1131+ sage: p = 13
11291132 sage: x = PolynomialRing(GF(p),"x").gen()
1130- sage: C = CyclicCover(6 , x^6 + 1)
1133+ sage: C = CyclicCover(4 , x^4 + 1)
11311134 sage: C.frobenius_polynomial()
1132- x^20 + 50 *x^18 + 1125 *x^16 + 15000 *x^14 + 131250 *x^12 + 787500*x^10 + 3281250*x^8 + 9375000*x^6 + 17578125*x^4 + 19531250*x^2 + 9765625
1135+ x^6 - 6 *x^5 + 3 *x^4 + 60 *x^3 + 39 *x^2 - 1014*x + 2197
11331136 sage: R.<t> = PowerSeriesRing(Integers())
1134- sage: C.projective_closure().zeta_series(4 ,t)
1135- 1 + 6 *t + 81 *t^2 + 456*t^3 + 3456*t^4 + O(t^5 )
1137+ sage: C.projective_closure().zeta_series(2 ,t)
1138+ 1 + 8 *t + 102 *t^2 + O(t^3 )
11361139 sage: C.frobenius_polynomial().reverse()(t)/((1-t)*(1-p*t)) + O(t^5)
1137- 1 + 6 *t + 81 *t^2 + 456 *t^3 + 3456 *t^4 + O(t^5)
1140+ 1 + 8 *t + 102 *t^2 + 1384 *t^3 + 18089 *t^4 + O(t^5)
11381141
11391142 sage: x = PolynomialRing(GF(11),"x").gen()
1140- sage: CyclicCover(4, x^6 - 11*x^3 + 70*x^2 - x + 961).frobenius_polynomial()
1143+ sage: CyclicCover(4, x^6 - 11*x^3 + 70*x^2 - x + 961).frobenius_polynomial() # long time
11411144 x^14 + 14*x^12 + 287*x^10 + 3025*x^8 + 33275*x^6 + 381997*x^4 + 2254714*x^2 + 19487171
11421145 sage: x = PolynomialRing(GF(4999),"x").gen()
1143- sage: CyclicCover(4, x^6 - 11*x^3 + 70*x^2 - x + 961).frobenius_polynomial()
1146+ sage: CyclicCover(4, x^6 - 11*x^3 + 70*x^2 - x + 961).frobenius_polynomial() # long time
11441147 x^14 - 4*x^13 - 2822*x^12 - 30032*x^11 + 37164411*x^10 - 152369520*x^9 + 54217349361*x^8 - 1021791160888*x^7 + 271032529455639*x^6 - 3807714457169520*x^5 + 4642764601604000589*x^4 - 18754988504199390032*x^3 - 8809934776794570547178*x^2 - 62425037490001499880004*x + 78015690603129374475034999
11451148
11461149 sage: p = 11
@@ -1158,15 +1161,15 @@ def frobenius_polynomial(self):
11581161
11591162 sage: p = 11
11601163 sage: x = PolynomialRing(GF(p),"x").gen()
1161- sage: CyclicCover(5, x^5 + x).frobenius_polynomial()
1164+ sage: CyclicCover(5, x^5 + x).frobenius_polynomial() # long time
11621165 x^12 + 4*x^11 + 22*x^10 + 108*x^9 + 503*x^8 + 1848*x^7 + 5588*x^6 + 20328*x^5 + 60863*x^4 + 143748*x^3 + 322102*x^2 + 644204*x + 1771561
1163- sage: CyclicCover(5, 2*x^5 + x).frobenius_polynomial()
1166+ sage: CyclicCover(5, 2*x^5 + x).frobenius_polynomial() # long time
11641167 x^12 - 9*x^11 + 42*x^10 - 108*x^9 - 47*x^8 + 1782*x^7 - 8327*x^6 + 19602*x^5 - 5687*x^4 - 143748*x^3 + 614922*x^2 - 1449459*x + 1771561
11651168 sage: p = 49999
11661169 sage: x = PolynomialRing(GF(p),"x").gen()
1167- sage: CyclicCover(5, x^5 + x ).frobenius_polynomial()
1170+ sage: CyclicCover(5, x^5 + x ).frobenius_polynomial() # long time
11681171 x^12 + 299994*x^10 + 37498500015*x^8 + 2499850002999980*x^6 + 93742500224997000015*x^4 + 1874812507499850001499994*x^2 + 15623125093747500037499700001
1169- sage: CyclicCover(5, 2*x^5 + x).frobenius_polynomial()
1172+ sage: CyclicCover(5, 2*x^5 + x).frobenius_polynomial() # long time
11701173 x^12 + 299994*x^10 + 37498500015*x^8 + 2499850002999980*x^6 + 93742500224997000015*x^4 + 1874812507499850001499994*x^2 + 15623125093747500037499700001
11711174
11721175
0 commit comments