cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A362198 a(n) = number of isogeny classes of abelian surfaces over the finite field of order prime(n).

Original entry on oeis.org

35, 63, 129, 207, 401, 513, 765, 897, 1193, 1683, 1861, 2425, 2821, 3031, 3461, 4139, 4861, 5109, 5877, 6409, 6683, 7521, 8099, 8987, 10223, 10865, 11185, 11839, 12173, 12849, 15301, 16031, 17143, 17519, 19441, 19833, 21027, 22239, 23065, 24317, 25589, 26019, 28203, 28647, 29545, 29993
Offset: 1

Views

Author

Robin Visser, Apr 10 2023

Keywords

Comments

Two abelian varieties over a finite field are isogenous if and only if their Hasse-Weil zeta functions coincide.
Thus a(n) is the number of degree 4 integer polynomials with leading coefficient prime(n)^2, whose (complex) roots all have absolute value 1/sqrt(prime(n)).

Examples

			For n = 1, the a(1) = 35 possible isogeny classes correspond to the following 35 possible Hasse-Weil zeta functions of abelian surfaces over F_2: 4x^4 - 8x^3 + 8x^2 - 4x + 1, 4x^4 - 6x^3 + 5x^2 - 3x + 1, 4x^4 - 6x^3 + 6x^2 - 3x + 1, 4x^4 - 4x^3 + 2x^2 - 2x + 1, 4x^4 - 4x^3 + 3x^2 - 2x + 1, 4x^4 - 4x^3 + 4x^2 - 2x + 1, 4x^4 - 4x^3 + 5x^2 - 2x + 1, 4x^4 - 2x^3 - x^2 - x + 1, 4x^4 - 2x^3 - x + 1, 4x^4 - 2x^3 + x^2 - x + 1, 4x^4 - 2x^3 + 2x^2 - x + 1, 4x^4 - 2x^3 + 3x^2 - x + 1, 4x^4 - 2x^3 + 4x^2 - x + 1, 4x^4 - 4x^2 + 1, 4x^4 - 3x^2 + 1, 4x^4 - 2x^2 + 1, 4x^4 - x^2 + 1, 4x^4 + 1, 4x^4 + x^2 + 1, 4x^4 + 2x^2 + 1, 4x^4 + 3x^2 + 1, 4x^4 + 4x^2 + 1, 4x^4 + 2x^3 - x^2 + x + 1, 4x^4 + 2x^3 + x + 1, 4x^4 + 2x^3 + x^2 + x + 1, 4x^4 + 2x^3 + 2x^2 + x + 1, 4x^4 + 2x^3 + 3x^2 + x + 1, 4x^4 + 2x^3 + 4x^2 + x + 1, 4x^4 + 4x^3 + 2x^2 + 2x + 1, 4x^4 + 4x^3 + 3x^2 + 2x + 1, 4x^4 + 4x^3 + 4x^2 + 2x + 1, 4x^4 + 4x^3 + 5x^2 + 2x + 1, 4x^4 + 6x^3 + 5x^2 + 3x + 1, 4x^4 + 6x^3 + 6x^2 + 3x + 1, 4x^4 + 8x^3 + 8x^2 + 4x + 1.
		

Crossrefs

Programs

  • Sage
    from sage.rings.polynomial.weil.weil_polynomials import WeilPolynomials
    def a(n):
        p = Primes()[n-1]
        return len(list(WeilPolynomials(4,p)))
    
  • Sage
    def a(n):
        R. = PolynomialRing(CC)
        num_solutions = 0
        p = Primes()[n-1]
        for Cp in range(ceil(p+1-4*sqrt(p)), floor(p+1+4*sqrt(p))+1):
            for Cp2 in range(ceil(p^2+1-4*p), floor(p^2+1+4*p)+1):
                a2 = (Cp^2 + Cp2 + 2*p*(1-Cp) - 2*Cp)
                if a2%2 != 0:
                    continue
                L_poly = 1 + (Cp-p-1)*x + a2/2*x^2 + p*(Cp-p-1)*x^3 + p^2*x^4
                for r in L_poly.roots():
                    if (abs(abs(r[0]) - 1/sqrt(p)) > 1e-12):
                        break
                else:
                    num_solutions += 1
        return num_solutions

Formula

a(n) ~ (32/3) * prime(n)^(3/2).