Opened 3 years ago

Last modified 4 months ago

#20264 needs_work enhancement

Hasse-Weil Zeta function of a cyclic cover of P1 over finite fields.

Reported by: edgarcosta Owned by:
Priority: major Milestone: sage-8.5
Component: padics Keywords: days71, sd87, days88
Cc: alexjbest Merged in:
Authors: Vishal Arul, Edgar Costa, Richard Magner, and Nicholas Triantafillou Reviewers:
Report Upstream: N/A Work issues:
Branch: public/zeta-no-wrap (Commits) Commit: d7a885cb085673a6f7531a765bd0e7405d81b1f4
Dependencies: #25366 Stopgaps:

Description (last modified by edgarcosta)

We add a new method to compute the zeta function of a cyclic cover of P^1, this is the result of a forthcoming paper generalizing the work of Kedlaya, Harvey, Minzlaff and Gonçalves. In particular, we add two classes for cyclic covers, one over a generic ring and a specialized one over finite fields. This requires wrapping David Harvey's code for computing products of matrices already in Sage but not accessible to Sage, see #25366

Here is a quick example:

sage: p = 4999;
sage: x = PolynomialRing(GF(p),"x").gen();
sage: C = CyclicCover(5, x^5 + 1)
sage: C
Cyclic Cover of P^1 over Finite Field of size 4999 defined by y^5 = x^5 + 1
sage: C.frobenius_polynomial()
x^12 + 29994*x^10 + 374850015*x^8 + 2498500299980*x^6 + 9367502249700015*x^4 + 18731257498500149994*x^2 + 15606259372500374970001
sage: C.genus()

Change History (15)

comment:1 Changed 2 years ago by roed

  • Keywords sd87 added

comment:2 Changed 2 years ago by edgarcosta

  • Keywords days88 added

comment:3 Changed 16 months ago by edgarcosta

  • Authors changed from Edgar Costa, Chris Nicholls to Vishal Arul, Edgar Costa, Richard Magner, and Nicholas Triantafillou
  • Cc alexjbest added
  • Dependencies set to #25366
  • Description modified (diff)
  • Milestone changed from sage-7.2 to sage-8.3
  • Summary changed from Hasse-Weil Zeta function of a superelliptic curve over finite fields. to Hasse-Weil Zeta function of a cyclic cover of P1 over finite fields.

comment:4 Changed 16 months ago by edgarcosta

  • Branch set to u/edgarcosta/cycliccovers
  • Commit set to 5706cca0599155736f262d6d8d31ee44f31514b0
  • Status changed from new to needs_info

New commits:

3e1041dwrap ntl_mat_ZZ_p functionality
96e0783wrap harvey's intervalproducts
d91d387merge w/develop
5706ccainitial commit for cyclic covers

comment:5 Changed 16 months ago by git

  • Commit changed from 5706cca0599155736f262d6d8d31ee44f31514b0 to 7b51922af08c4002fc36f565025fcad8955cfe12

Branch pushed to git repo; I updated commit sha1. New commits:

7b51922more examples at the top

comment:6 Changed 16 months ago by edgarcosta

Last edited 16 months ago by edgarcosta (previous) (diff)

comment:7 Changed 16 months ago by edgarcosta

  • Status changed from needs_info to needs_review

comment:8 Changed 16 months ago by edgarcosta

  • Description modified (diff)

comment:9 Changed 14 months ago by vdelecroix

  • Milestone changed from sage-8.3 to sage-8.4

update milestone 8.3 -> 8.4

comment:10 Changed 10 months ago by alexjbest

  • Branch changed from u/edgarcosta/cycliccovers to public/zeta-cyclic
  • Commit changed from 7b51922af08c4002fc36f565025fcad8955cfe12 to 30d61b5987424de767facbcd6abd9ed82a5562ef

Last 10 new commits:

7c86227began reviewing zeta functions of cyclic covers
05199c0removed many semicolons
91ddb8esmall fix
e91fb3crename folder
ed9eca9finish move
cdca59ddelete unused function
df1216fmore style fixes last bit of move
c4e7788move check squarefree
c0df121add to main reference
30d61b5more cleanup

comment:11 Changed 10 months ago by alexjbest

  • Milestone changed from sage-8.4 to sage-8.5

comment:12 Changed 9 months ago by edgarcosta

  • Branch changed from public/zeta-cyclic to public/zeta-no-wrap
  • Commit changed from 30d61b5987424de767facbcd6abd9ed82a5562ef to d7a885cb085673a6f7531a765bd0e7405d81b1f4

Last 10 new commits:

9b89e3aremoved many semicolons
2493a73small fix
5a8afa8rename folder
3fb8aa1finish move
e5fe996delete unused function
198943fmore style fixes last bit of move
cd05163move check squarefree
b78a04dadd to main reference
3883347more cleanup
d7a885cfixed lots of docs with edgar

comment:13 Changed 9 months ago by alexjbest

This is looking pretty good now to me, so I intend to mark this as positive review once #25366 is reviewed.

comment:14 Changed 4 months ago by edgarcosta

Vishal Arul spotted some bugs.

sage: %time CyclicCover(11, PolynomialRing(GF(1129), 'x')([-1] + [0]*(5-1) + [1])).frobenius_polynomial()
CPU times: user 16.1 s, sys: 124 ms, total: 16.3 s
Wall time: 16.5 s
x^40 + 7337188909826596*x^30 + 3818873571673594702967652840943135*x^20 + 24687045654725446027864774006541463602997309796*x^10 + 11320844849639649951608809973589776933203136765026963553258401

So the discrepancy is in the t^20 coefficient -- Minzlaff's code says it is

20187877911930897108199045855206 = 6 * 1129^10

while the current code says it is

3818873571673594702967652840943135 = 6 * 1129^10 + 1129^11.

the difference is exactly 112911. So it does look like some kind of precision error...

My bet is that error is either in working precision or the code to lift characteristic polynomial to ZZ

Another bug, that seems to be related with precision when using the slow method

sage: CyclicCover(3, PolynomialRing(GF(1009), 'x')([-1] + [0]*(5-1) + [1])).frobenius_polynomial()
x^8 + 266*x^6 - 1474149*x^4 + 270809546*x^2 + 1036488922561
sage: CyclicCover(3, PolynomialRing(GF(1009**2), 'x')([-1] + [0]*(5-1) + [1])).frobenius_polynomial()
x^8 + 1045817316825941*x^7 + 546866930086505850133464526551*x^6 + 190640968494636702312197540239024924597536618*x^5 + 49843906537040069873392691186784704861320520036908736885312*x^4 + 194087947845988228526704383964086734259184677590058*x^3 + 566821515149604163130057985174959967417111*x^2 + 1103577471286158480607964750564981*x + 1074309286591662654798721

It looks like the frobenius polynomial for GF(1009) is correct, but it is not correct for GF(1009**2). Comparing with Minzlaff's code, the right frobenius polynomial for GF(1009**2) should be

x^8 + 532*x^7 - 2877542*x^6 - 242628176*x^5 + 4390163797795*x^4 - 247015136050256*x^3 - 2982540407204025062*x^2 + 561382189105547134612*x + 1074309286591662654798721

comment:15 Changed 4 months ago by edgarcosta

  • Status changed from needs_review to needs_work
Note: See TracTickets for help on using tickets.