Пример #1
0
def dimension_cuspforms_sqrt5(k1, k2):
    '''
    Return the dimension of hilbert cusp forms of
    weight (k1, k2) where k1 > 2 and k2 > 2.

    cf. K. Takase, on the trace formula of the Hecke operators and the special
    values of the second L-functions attached to the Hilbert modular forms.
    manuscripta math. 55, 137 --  170 (1986).
    '''
    k = (k1, k2)
    F = QuadraticField(5)
    rho = (1 + F.gen()) / ZZ(2)
    a = c_km2_1_rho(k, rho)
    return (ZZ((k1 - 1) * (k2 - 1)) / ZZ(60) + ZZ(c_km2_1_01(k)) / ZZ(4) +
            ZZ(c_km2_1_11(k)) / ZZ(3) +
            ZZ(a + F(a).galois_conjugate()) / ZZ(5))
Пример #2
0
def c_km2_1_sqrt2(k):
    K = QuadraticField(2)
    a = K.gen()
    k1, k2 = k
    k1 = k1 % 8
    k2 = k2 % 8
    k = (k1, k2)
    if k in [(0, 0), (2, 2), (4, 4), (6, 6), (0, 6), (6, 0), (2, 4), (4, 2)]:
        return 1
    if k in [(3, 7), (7, 3)]:
        return 2
    if k in [(0, 7), (2, 3), (3, 0), (3, 6), (4, 3), (6, 7), (7, 2), (7, 4)]:
        return a
    if k1 in [1, 5] or k2 in [1, 5]:
        return 0
    if k in [(0, 3), (2, 7), (3, 2), (3, 4), (4, 7), (6, 3), (7, 0), (7, 6)]:
        return -a
    if k in [(3, 3), (7, 7)]:
        return -2
    else:
        return -1
Пример #3
0
    ====================================================================
"""

import pytest
from sage.all import EllipticCurve_from_j, GF, QQ, QuadraticField
from sage.rings.polynomial.polynomial_ring import polygen
from sage.schemes.elliptic_curves.constructor import EllipticCurve

from sage_code.frobenius_polynomials import (
    semi_stable_frobenius_polynomial,
    isogeny_character_values_12,
)

K = QuadraticField(-127, "D")
D = K.gen(0)
j = 20 * (3 * (-26670989 - 15471309 * D) / 2**26)**3
# this is one of the curves from the Gonzaléz, Lario, and Quer article
E = EllipticCurve_from_j(j)


def test_semi_stable_frobenius_polynomial():

    # test that we indeed have a 73 isogeny mod p
    for p in 2, 3, 5, 7, 11, 19:
        for pp, e in (p * K).factor():
            f = semi_stable_frobenius_polynomial(E, pp)
            assert not f.change_ring(GF(73)).is_irreducible()


def test_semi_stable_frobenius_polynomial_t():