Пример #1
0
    def __init__(self, E, m):
        if E.has_cm():
            raise ValueError("E should not be cm")

        from sympowlmfdb import sympowlmfdb
        bad_primes, conductor, root_number = sympowlmfdb.local_data(E, m)
        self.bad_prime_euler = {}
        self.bad_primes = [i for (i, _) in bad_primes]
        for j in bad_primes:
            a, b = j
            self.bad_prime_euler[a] = b
        self.m = m
        self.conductor = conductor
        self.root_number = root_number
        self.E = E
        self._construct_L()
Пример #2
0
    def __init__(self, E, m):
        if E.has_cm():
            raise ValueError("E should not be cm")

        from sympowlmfdb import sympowlmfdb
        bad_primes, conductor, root_number = sympowlmfdb.local_data(E, m)
        self.bad_prime_euler = {}
        self.bad_primes = [i for (i, _) in bad_primes]
        for j in bad_primes:
            a, b = j
            self.bad_prime_euler[a] = b
        self.m = m
        self.conductor = conductor
        self.root_number = root_number
        self.E = E
        self._construct_L()
Пример #3
0
def symmetricEulerFactor(E, m, p):

    bad_primes, conductor, root_number = sympowlmfdb.local_data(E, m)
    bad_P_poly = {}
    bad_P_list = [i for (i, _) in bad_primes]
    for j in bad_primes:
        a, b = j
        bad_P_poly[a] = b

    if p in bad_P_list:
        return bad_P_poly[p]

    m = sage.rings.all.Integer(m)
    # E=EllipticCurve(E)
    R = sage.rings.all.PolynomialRing(sage.rings.all.RationalField(), 't')
    t = R('t')
    F = 1

    print type(F)

    for i in range(0, (m - 1) / 2 + 1):
        s = m - 2 * i
        s2 = s // 2
        ap = E.ap(p)

        TI = sum([
            tbin(s, s2 - k) * ap**(2 * k) * p**(s2 - k)
            for k in xrange(0, s2 + 1)
        ])

        if s % 2 != 0:
            TI = ap * TI

        F = F * (1 - TI * p**i * t + p**m * t**2)

    if m % 2 == 0:
        F = F * (1 - p**(m / 2) * t)

    return F.coeffs()
Пример #4
0
def symmetricEulerFactor(E, m, p):

    bad_primes, conductor, root_number = sympowlmfdb.local_data(E, m)
    bad_P_poly = {}
    bad_P_list = [i for (i, _) in bad_primes]
    for j in bad_primes:
        a, b = j
        bad_P_poly[a] = b

    if p in bad_P_list:
        return bad_P_poly[p]

    m = sage.rings.all.Integer(m)
    # E=EllipticCurve(E)
    R = sage.rings.all.PolynomialRing(sage.rings.all.RationalField(), 't')
    t = R('t')
    F = 1

    print type(F)

    for i in range(0, (m - 1) / 2 + 1):
        s = m - 2 * i
        s2 = s // 2
        ap = E.ap(p)

        TI = sum([tbin(s, s2 - k) * ap ** (2 * k) * p ** (s2 - k) for k in xrange(0, s2 + 1)])

        if s % 2 != 0:
            TI = ap * TI

        F = F * (1 - TI * p ** i * t + p ** m * t ** 2)

    if m % 2 == 0:
        F = F * (1 - p ** (m / 2) * t)

    return F.coeffs()
Пример #5
0
def symmetricPowerLfunction(E, n):
    """
    gives lcalc version of symmetric power L function
    """

    bad_primes, conductor, root_number = sympowlmfdb.local_data(E, n)
Пример #6
0
def symmetricPowerLfunction(E, n):
    """gives lcalc version of symmetric power L function"""
    bad_primes, conductor, root_number = sympowlmfdb.local_data(E, n)