Exemple #1
0
def import_table(address, table_filename, max_level=None):
    """
    Import a text table of weq's, using upsert to avoid
    replication of data.  Format is like this:

    ::
    
      31      5*a-2       0   -3 2 -2 2 4 -4 4 -4 -2 -2 ? ? -6 -6 12 -4 6 -2 -8 0 0 16 10 -6              [1,a+1,a,a,0]
      31      5*a-3       0   -3 2 -2 2 -4 4 -4 4 -2 -2 ? ? -6 -6 -4 12 -2 6 0 -8 16 0 -6 10              [1,-a-1,a,0,0]
      36      6           0   ? ? -4 10 2 2 0 0 0 0 -8 -8 2 2 -10 -10 2 2 12 12 0 0 10 10                 [a,a-1,a,-1,-a+1]
    """
    from psage.modform.hilbert.sqrt5.sqrt5 import F
    from sage.databases.cremona import cremona_letter_code
    from aplists import labeled_primes_of_bounded_norm, str_to_apdict
    labels, primes = labeled_primes_of_bounded_norm(F, 100)

    from psage.lmfdb.auth import userpass
    user, password = userpass()

    from pymongo import Connection
    C = Connection(address).research
    if not C.authenticate(user, password):
        raise RuntimeError, "failed to authenticate"
    e = C.ellcurves_sqrt5

    for X in open(table_filename).read().splitlines():
        if X.startswith('#'):
            continue
        z = X.split()
        Nlevel = z[0]
        level = z[1]
        iso_class = z[2]
        weq = z[-1]
        ap = ' '.join(z[3:-1])
        ap = str_to_apdict(ap, labels)
        Nlevel = int(Nlevel)
        iso_class = cremona_letter_code(int(iso_class))
        v = {
            'level': level,
            'iso_class': iso_class,
            'number': 1,
            'Nlevel': Nlevel,
            'ap': ap,
            'weq': weq
        }
        if max_level and Nlevel > max_level: break
        print v
        spec = dict(v)
        del spec['weq']
        e.update(spec, v, upsert=True, safe=True)
Exemple #2
0
def ellcurves_sqrt5(address='localhost:29000', username=None, password=None):
    from sage.databases.cremona import cremona_letter_code
    from psage.modform.hilbert.sqrt5.sqrt5 import F
    from aplists import labeled_primes_of_bounded_norm
    labels, primes = labeled_primes_of_bounded_norm(F, 100)

    from pymongo import Connection
    C = Connection(address).research
    if username is None or password is None:
        from psage.lmfdb.auth import userpass
        username, password = userpass()
        
    if not C.authenticate(username, password):
        raise RuntimeError, "failed to authenticate"
    
    return C.ellcurves_sqrt5
Exemple #3
0
def ellcurves_sqrt5(address='localhost:29000', username=None, password=None):
    from sage.databases.cremona import cremona_letter_code
    from psage.modform.hilbert.sqrt5.sqrt5 import F
    from aplists import labeled_primes_of_bounded_norm
    labels, primes = labeled_primes_of_bounded_norm(F, 100)

    from pymongo import Connection
    C = Connection(address).research
    if username is None or password is None:
        from psage.lmfdb.auth import userpass
        username, password = userpass()

    if not C.authenticate(username, password):
        raise RuntimeError, "failed to authenticate"

    return C.ellcurves_sqrt5
Exemple #4
0
def import_table(address, table_filename, max_level=None):
    """
    Import a text table of weq's, using upsert to avoid
    replication of data.  Format is like this:

    ::
    
      31      5*a-2       0   -3 2 -2 2 4 -4 4 -4 -2 -2 ? ? -6 -6 12 -4 6 -2 -8 0 0 16 10 -6              [1,a+1,a,a,0]
      31      5*a-3       0   -3 2 -2 2 -4 4 -4 4 -2 -2 ? ? -6 -6 -4 12 -2 6 0 -8 16 0 -6 10              [1,-a-1,a,0,0]
      36      6           0   ? ? -4 10 2 2 0 0 0 0 -8 -8 2 2 -10 -10 2 2 12 12 0 0 10 10                 [a,a-1,a,-1,-a+1]
    """
    from psage.modform.hilbert.sqrt5.sqrt5 import F
    from sage.databases.cremona import cremona_letter_code
    from aplists import labeled_primes_of_bounded_norm, str_to_apdict
    labels, primes = labeled_primes_of_bounded_norm(F, 100)

    from psage.lmfdb.auth import userpass
    user, password = userpass()

    from pymongo import Connection
    C = Connection(address).research
    if not C.authenticate(user, password):
        raise RuntimeError, "failed to authenticate"
    e = C.ellcurves_sqrt5


    for X in open(table_filename).read().splitlines():
        if X.startswith('#'):
            continue
        z = X.split()
        Nlevel = z[0]; level = z[1]; iso_class = z[2]; weq = z[-1]
        ap = ' '.join(z[3:-1])
        ap = str_to_apdict(ap, labels)
        Nlevel = int(Nlevel)
        iso_class = cremona_letter_code(int(iso_class))
        v = {'level':level, 'iso_class':iso_class,
             'number':1, 'Nlevel':Nlevel, 'ap':ap,
             'weq':weq}
        if max_level and Nlevel > max_level: break
        print v
        spec = dict(v)
        del spec['weq']
        e.update(spec, v, upsert=True, safe=True)