Opened 4 years ago

Last modified 21 months ago

#19865 new enhancement

Added functionality to compute zeta functions of nondegenerate hypersurfaces over finite fields

Reported by: malcolmkotok Owned by:
Priority: major Milestone: sage-7.0
Component: number theory Keywords: zeta, p-adic, L-function, sd87, sd91
Cc: malcolmkotok, ursula Merged in:
Authors: Heidi Goodson, Malcolm Kotok, Renate Scheidler, Mckenzie West, Ursula Whitcher Reviewers:
Report Upstream: N/A Work issues:
Branch: u/mwest/ticket_19865 (Commits) Commit: c6c8c8ec15cb66e6dd7833e4366450cc7777bb88
Dependencies: Stopgaps:

Description (last modified by ursula)

As part of his Ph.D. thesis, Malcolm Kotok implemented a function to compute zeta functions of nondegenerate hypersurfaces over finite fields, based on a paper of Sperber and Voight. We wish to incorporate this into Sage. For more information see: http://arxiv.org/abs/1112.4881

Change History (13)

comment:1 Changed 4 years ago by malcolmkotok

  • Authors set to Malcolm Kotok
  • Cc malcolmkotok added

comment:2 Changed 3 years ago by kedlaya

There is also a project by Costa, Harvey, and myself to do a different computation of zeta functions of nondegenerate toric hypersurfaces, using Monsky-Washnitzer cohomology in place of Dwork's series method. It's not yet clear how these two methods will compare (the Sperber-Voight method is optimized towards sparse hypersurfaces somewhat more than our approach), so it would be valuable to have both!

comment:3 Changed 3 years ago by kedlaya

Note also ticket #15239 regarding testing for nondegeneracy, which might be worth dealing with first.

comment:4 Changed 2 years ago by roed

  • Keywords sd87 added

comment:5 Changed 22 months ago by kedlaya

For (my own) convenience, the link to the code is http://hdl.handle.net/1802/30832.

Related projects: #20265, #23863.

comment:6 Changed 22 months ago by kedlaya

  • Keywords sd91 added

comment:7 Changed 22 months ago by ursula

  • Authors changed from Malcolm Kotok to Heidi Goodson, Malcolm Kotok, Renate Scheidler, Mckenzie West, Ursula Whitcher
  • Cc ursula added
  • Description modified (diff)

comment:8 Changed 22 months ago by jantuitman

I tried this code about a year ago and it seemed to have some serious problems like it not finishing for a plane quartic curve over F_p (for any p). I wrote to Kotok about this, but never heard back from him. It could be some trivial issue, but it is hard to say.

comment:9 Changed 22 months ago by kedlaya

My understanding is that some successful experiments with the code were made at SD91. Maybe someone can push the result to trac so that the rest of us can help with stress-testing?

comment:10 Changed 22 months ago by jantuitman

Ok, here is what I'm talking about:

load("ffzeta.sage");
R.<x,y>=PolynomialRing(ZZ,2);

# does work:
Q=y^2-(x^3+x+1); p=13;
ffzeta(Q,p,verbose=True);

# does not work:
Q=y^4+(5*x-4)*y^3+(3*x^2+2*x-3)*y^2+(x^3+4*x^2-2*x+3)*y+(3*x^4-2*x^3-4*x^2+2*x+2); p=11;
ffzeta(Q,p,verbose=True);

Last edited 22 months ago by jantuitman (previous) (diff)

comment:11 Changed 22 months ago by kedlaya

The Sperber-Voight algorithm being implemented here has as a complexity parameter the number of interior monomials, so it probably doesn't stand much of a chance for dense equations (although descending it from Sage to Cython might help near the borderline).

For smooth projective hypersurfaces, we also have tickets #20265 (deformation) and #23863 (controlled reduction). For nondegenerate toric hypersurfaces, Edgar Costa has functioning C code doing controlled reduction, but I believe it is not yet available for public consumption.

comment:12 Changed 21 months ago by mwest

  • Branch set to u/mwest/ticket_19865

comment:13 Changed 21 months ago by mwest

  • Commit set to c6c8c8ec15cb66e6dd7833e4366450cc7777bb88

We have some debugging to make this a method for polynomials. There are definitely errors in the computation in the multivariate example at the beginning of the function.


New commits:

30f7aefNew function zeta_function has been added to multi_polynomial
c6c8c8eKotok code added, zeta_function is a method of polynomials
Note: See TracTickets for help on using tickets.