Computing class groups and gonalities of algebraic curves over finite fields

Reading time: 5 minute
...

📝 Original Info

  • Title: Computing class groups and gonalities of algebraic curves over finite fields
  • ArXiv ID: 2602.17417
  • Date: 2026-02-19
  • Authors: ** - 첫 번째 저자: (이름 미제공) – “Implementation of cutting‑edge research …” 프로젝트 지원받음. - 두 번째 저자: (이름 미제공) – EPSRC 및 Heilbronn Institute 지원받음. **

📝 Abstract

We give practical algorithms for computing the divisor class group and the gonality of a curve over a finite field, achieving several orders of magnitude speedup over existing methods for sufficiently large genus or residue field. The approach relies on introducing a precomputation step involving power series-expansions, which allows for an efficient amortized computation of large numbers of Riemann-Roch spaces.

💡 Deep Analysis

📄 Full Content

The divisor class group 1 and the gonality are two important invariants of a curve. Being able to explicitly compute these invariants over finite fields has many applications. For example, explicit computation of gonalities over finite fields has been used to study the degree d points on modular curves in [4,6,13]. Efficiently computing gonalities over finite fields is a bottleneck in extending those results to higher degrees.

The ability to explicitly compute in class groups of curves over finite fields in Magma has seen even wider applications to current number theory research. For instance, such computations are necessary to perform the Mordell-Weil sieve [3], which is an essential tool for studying rational points on (symmetric powers of) curves. Another application is to the study of the torsion subgroups of Jacobians of curves over number fields. These class group computations can often take several hours, as can be seen, for example, at the end of the proof of [5,Prop. 3.4]. In prior work, the first author often had to resort to finding other proof strategies since class group computations did not terminate after several weeks. This highlights the importance of having explicit implementations of these algorithms that are not only fast in theory but also fast in practice, and is the main motivations for this article.

In this paper, we present algorithms that compute the class group and gonality of a curve over a finite field. Such algorithms have been developed previously in the literature. For instance, a strategy for computing the gonality can already be found in [4, §3]. Similarly, algorithms for the computation of the structure of the class group can be found in [7,8,10]. The main contribution of this paper consists of implementations of our new algorithms that are up to several orders of magnitude faster in practice than existing implementations; see Section 6 for precise timing data. This substantial improvement enables many new computations that were not practical previously. For example, the gonality algorithm in this paper will be used to compute lower bounds on the Q-gonality for the millions of modular curves currently being added to the LMFDB [11] in forthcoming work [1]. Additionally, Filip Najman [12] has already used this same algorithm to extend the results of [6] to degree 7.

1.1. Computing Riemann-Roch spaces. Existing algorithms for computing class groups and gonalities require computing Riemann-Roch spaces for thousands, if not millions, of divisors. So, this computation is a major bottleneck in these algorithms. Existing methods for computing such Riemann-Roch spaces, such as the one proposed by Hess in [9], use a combination of ideal and polynomial arithmetic. This is quite fast for computing a single Riemann-Roch space. However, it becomes infeasible to do this computation millions of times on higher genus curves.

In Section 3, we present a new approach to computing many related Riemann-Roch spaces. Rather than computing each Riemann-Roch space separately, this approach precomputes the Riemann-Roch space of a single larger divisor as well as series expansions for a basis of this space. While this precomputation step can be quite time-consuming, as it also relies on ideal and polynomial arithmetic, subsequent Riemann-Roch calculations are then reduced to linear algebraic problems, which can be solved extremely quickly. This provides a very efficient amortized algorithm for computing many Riemann-Roch spaces at once.

Applying this technique to existing algorithms for computing gonalities and class groups of curves forms the main idea behind our new algorithms and subsequent implementations. For gonalities, this is mostly straightforward, simply requiring an application of the Riemann-Roch theorem. The resulting algorithm is described in Section 4. In the case of class groups, the necessary modifications are somewhat more involved, and are described in Section 5.

1.2. Data availability and reproducibility. All the code and data for this article are available at https://github.com/nt-lib/CurveArith . Our code depends on Magma [2] and has been verified to work with versions v2.29-1 and v2.29-4.

The timing data of Section 6 has been obtained by running our code on a server with an AMD Opteron 6380 CPU @ 2.30GHz with 32 cores (64 threads) and 128GB of RAM running Ubuntu 22.04.5 LTS and Magma V2.29-1.

The README.md file in the GitHub repository contains more detailed instructions on how to use the code. In addition, it contains instructions on how to recreate the timing data used in Section 6 and on how to run the automated tests which verify that the code is working as intended.

In Table 1 we reproduce the results from [13, Proposition 5.15] on the gonality lower bounds for X 0 (N ) over F p , with a few caveats. First of all, the table of [13] gives the prime p = 6 for N = 132, 148, 277; we follow the accompanying code instead and use the prime 5. Similarly, the table states a

Reference

This content is AI-processed based on open access ArXiv data.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut