login
a(n) = number of isogeny classes of dimension 3 abelian varieties over the finite field of order prime(n).
3

%I #20 Jul 23 2023 22:23:15

%S 215,677,2953,7979,30543,50371,112283,156589,277517,555843,678957,

%T 1153875,1569637,1810805,2364089,3389675,4675707,5167277,6846631,

%U 8147047,8855295,11222313,13014767,16045439,20772343,23449327,24870063,27880975,29473619,32839031,46617799,51162221

%N a(n) = number of isogeny classes of dimension 3 abelian varieties over the finite field of order prime(n).

%C Two abelian varieties over a finite field are isogenous if and only if their Hasse-Weil zeta functions coincide.

%C Thus a(n) is the number of degree 6 integer polynomials with leading coefficient prime(n)^3 and whose (complex) roots all have absolute value 1/sqrt(prime(n)).

%H Robin Visser, <a href="/A362201/b362201.txt">Table of n, a(n) for n = 1..50</a>

%H S. A. DiPippo and E. W. Howe, <a href="https://arxiv.org/abs/math/9803097">Real polynomials with all roots on the unit circle and abelian varieties over finite fields</a>, arXiv:math/9803097 [math.NT], 1998-2000.

%H T. Dupuy, K. Kedlaya, D. Roe, and C. Vincent, <a href="https://arxiv.org/abs/2003.05380">Isogeny Classes of Abelian Varieties over Finite Fields in the LMFDB</a>, arXiv:2003.05380 [math.NT].

%H S. Haloui, <a href="https://arxiv.org/abs/1003.0374">The characteristic polynomials of abelian varieties of dimensions 3 over finite fields</a>, arXiv:1003.0374 [math.AG], 2020.

%H LMFDB, <a href="https://www.lmfdb.org/Variety/Abelian/Fq/?search_type=Counts">Abelian variety count results</a>.

%H W. C. Waterhouse, <a href="https://doi.org/10.24033/asens.1183">Abelian varieties over finite fields</a>, Ann. Sci. École Norm. Sup. (4) 2 (1969), 521-560.

%F a(n) ~ (1024/45) * prime(n)^3.

%o (Sage)

%o from sage.rings.polynomial.weil.weil_polynomials import WeilPolynomials

%o def a(n):

%o p = Primes()[n-1]

%o return len(list(WeilPolynomials(6, p)))

%o (Sage)

%o def a(n):

%o R.<x> = PolynomialRing(CC)

%o num_solutions = 0

%o p = Primes()[n-1]

%o for a1 in range(ceil(-6*sqrt(p)), floor(6*sqrt(p))+1):

%o for a2 in range(ceil(-15*p), floor(15*p)+1):

%o for a3 in range(ceil(-20*p*sqrt(p)), floor(20*p*sqrt(p))+1):

%o L_poly = 1+a1*x+a2*x^2+a3*x^3+p*a2*x^4+p^2*a1*x^5+p^3*x^6

%o for r in L_poly.roots():

%o if (abs(abs(r[0]) - 1/sqrt(p)) > 1e-12):

%o break

%o else:

%o num_solutions += 1

%o return num_solutions

%Y Cf. A362198, A362570.

%K nonn

%O 1,1

%A _Robin Visser_, Apr 10 2023