Counting points on superelliptic curves in average polynomial time
Andrew V. Sutherland
TL;DR
The paper develops an average polynomial-time algorithm for counting points on superelliptic curves $X: y^m=f(x)$ over $\mathbb{Q}$ by computing Cartier--Manin matrices $A_p$ of reductions modulo good primes $p$. It combines linear recurrences for coefficients of powers of $f$, translation tricks to recover entire block structure from a few rows, and accumulating remainder forests to merge computations across many primes. The main result is a bound $O(m^2 d^3 N \log^3 N)$ time and $O(md^2 N)$ space (under mild height bounds on $f$), with a trace-only variant achieving $O(m d^3 N \log^3 N)$. This enables efficient recovery of Frobenius traces $a_p$, p-ranks, and zeta-function data modulo $p$, supporting large-scale arithmetic investigations such as Sato–Tate distributions and Lang–Trotter-type questions for families of superelliptic curves.
Abstract
We describe the practical implementation of an average polynomial-time algorithm for counting points on superelliptic curves defined over $\mathbb Q$ that is substantially faster than previous approaches. Our algorithm takes as input a superelliptic curves $y^m=f(x)$ with $m\ge 2$ and $f\in \mathbb Z[x]$ any squarefree polynomial of degree $d\ge 3$, along with a positive integer $N$. It can compute $\#X(\mathbb F_p)$ for all $p\le N$ not dividing $m\mathrm{lc}(f)\mathrm{disc}(f)$ in time $O(md^3 N\log^3 N\log\log N)$. It achieves this by computing the trace of the Cartier--Manin matrix of reductions of $X$. We can also compute the Cartier--Manin matrix itself, which determines the $p$-rank of the Jacobian of $X$ and the numerator of its zeta function modulo~$p$.
