def browse(): data = ECNF_stats().sigs_by_deg # We could use the dict directly but then could not control the order # of the keys (degrees), so we use a list info = [[d,['%s,%s'%sig for sig in data[d]]] for d in sorted(data.keys())] credit = 'John Cremona' t = 'Elliptic Curves over Number Fields' bread = [('Elliptic Curves', url_for("ecnf.index")), ('Browse', ' ')] return render_template("ecnf-stats.html", info=info, credit=credit, title=t, bread=bread, learnmore=learnmore_list())
def browse(): data = ECNF_stats().sigs_by_deg # We could use the dict directly but then could not control the order # of the keys (degrees), so we use a list info = [[d, ['%s,%s' % sig for sig in data[d]]] for d in sorted(data.keys())] t = 'Elliptic curves over number fields' bread = [('Elliptic curves', url_for("ecnf.index")), ('Browse', ' ')] return render_template("ecnf-stats.html", info=info, title=t, bread=bread, learnmore=learnmore_list())
def index(): # if 'jump' in request.args: # return show_ecnf1(request.args['label']) info = to_dict(request.args, search_array=ECNFSearchArray()) if request.args: return elliptic_curve_search(info) bread = get_bread() # the dict data will hold additional information to be displayed on # the main browse and search page # info['fields'] holds data for a sample of number fields of different # signatures for a general browse: fields_by_deg = ECNF_stats().fields_by_deg fields_by_sig = ECNF_stats().fields_by_sig info['fields'] = [] # Rationals # info['fields'].append(['the rational field', (('1.1.1.1', [url_for('ec.rational_elliptic_curves'), '$\Q$']),)]) # Removed due to ambiguity # Real quadratics (sample) rqfs = ['2.2.{}.1'.format(d) for d in [5, 89, 229, 497]] niqfs = len(fields_by_sig[0, 1]) nrqfs = len(fields_by_sig[2, 0]) info['fields'].append([ '{} real quadratic fields, including'.format(nrqfs), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in rqfs) ]) # Imaginary quadratics (sample) iqfs = ['2.0.{}.1'.format(d) for d in [4, 8, 3, 7, 11]] info['fields'].append([ '{} imaginary quadratic fields, including'.format(niqfs), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in iqfs) ]) # Cubics (sample) cubics = ['3.1.23.1'] + ['3.3.{}.1'.format(d) for d in [49, 148, 1957]] ncubics = len(fields_by_deg[3]) info['fields'].append([ '{} cubic fields, including'.format(ncubics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in cubics) ]) # Quartics (sample) quartics = ['4.4.{}.1'.format(d) for d in [725, 2777, 9909, 19821]] nquartics = len(fields_by_deg[4]) info['fields'].append([ '{} totally real quartic fields, including'.format(nquartics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in quartics) ]) # Quintics (sample) quintics = [ '5.5.{}.1'.format(d) for d in [14641, 24217, 36497, 38569, 65657] ] nquintics = len(fields_by_deg[5]) info['fields'].append([ '{} totally real quintic fields, including'.format(nquintics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in quintics) ]) # Sextics (sample) sextics = [ '6.6.{}.1'.format(d) for d in [300125, 371293, 434581, 453789, 485125] ] nsextics = len(fields_by_deg[6]) info['fields'].append([ '{} totally real sextic fields, including'.format(nsextics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in sextics) ]) info['degrees'] = sorted( [int(d) for d in fields_by_deg.keys() if d != '_id']) # info['highlights'] holds data (URL and descriptive text) for a # sample of elliptic curves with interesting features: info['highlights'] = [] info['highlights'].append([ 'A curve with $C_3\\times C_3$ torsion', url_for('.show_ecnf', nf='2.0.3.1', class_label='a', conductor_label='2268.36.18', number=int(1)) ]) info['highlights'].append([ 'A curve with $C_4\\times C_4$ torsion', url_for('.show_ecnf', nf='2.0.4.1', class_label='b', conductor_label='5525.870.5', number=int(9)) ]) info['highlights'].append([ 'A curve with CM by $\\sqrt{-267}$', url_for('.show_ecnf', nf='2.2.89.1', class_label='a', conductor_label='81.1', number=int(1)) ]) info['highlights'].append([ 'An isogeny class with isogenies of degree $3$ and $89$ (and $267$)', url_for('.show_ecnf_isoclass', nf='2.2.89.1', class_label='a', conductor_label='81.1') ]) info['highlights'].append([ 'A curve with everywhere good reduction, but no global minimal model', url_for('.show_ecnf', nf='2.2.229.1', class_label='a', conductor_label='1.1', number=int(1)) ]) return render_template("ecnf-index.html", title="Elliptic Curves over Number Fields", info=info, bread=bread, learnmore=learnmore_list())
def index(): # if 'jump' in request.args: # return show_ecnf1(request.args['label']) if len(request.args) > 0: return elliptic_curve_search(request.args) bread = get_bread() # the dict data will hold additional information to be displayed on # the main browse and search page data = {} # data['fields'] holds data for a sample of number fields of different # signatures for a general browse: fields_by_deg = ECNF_stats().fields_by_deg fields_by_sig = ECNF_stats().fields_by_sig data['fields'] = [] # Rationals data['fields'].append(['the rational field', (('1.1.1.1', [url_for('ec.rational_elliptic_curves'), '$\Q$']),)]) # Real quadratics (sample) rqfs = ['2.2.{}.1'.format(d) for d in [5, 89, 229, 497]] niqfs = len(fields_by_sig[0,1]) nrqfs = len(fields_by_sig[2,0]) data['fields'].append(['{} real quadratic fields, including'.format(nrqfs), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in rqfs)]) # Imaginary quadratics (sample) iqfs = ['2.0.{}.1'.format(d) for d in [4, 8, 3, 7, 11]] data['fields'].append(['{} imaginary quadratic fields, including'.format(niqfs), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in iqfs)]) # Cubics (sample) cubics = ['3.1.23.1'] + ['3.3.{}.1'.format(d) for d in [49,148,1957]] ncubics = len(fields_by_deg[3]) data['fields'].append(['{} cubic fields, including'.format(ncubics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in cubics)]) # Quartics (sample) quartics = ['4.4.{}.1'.format(d) for d in [725,2777,9909,19821]] nquartics = len(fields_by_deg[4]) data['fields'].append(['{} totally real quartic fields, including'.format(nquartics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in quartics)]) # Quintics (sample) quintics = ['5.5.{}.1'.format(d) for d in [14641, 24217, 36497, 38569, 65657]] nquintics = len(fields_by_deg[5]) data['fields'].append(['{} totally real quintic fields, including'.format(nquintics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in quintics)]) # Sextics (sample) sextics = ['6.6.{}.1'.format(d) for d in [300125, 371293, 434581, 453789, 485125]] nsextics = len(fields_by_deg[6]) data['fields'].append(['{} totally real sextic fields, including'.format(nsextics), ((nf, [url_for('.show_ecnf1', nf=nf), field_pretty(nf)]) for nf in sextics)]) data['degrees'] = sorted([int(d) for d in fields_by_deg.keys() if d!='_id']) # data['highlights'] holds data (URL and descriptive text) for a # sample of elliptic curves with interesting features: data['highlights'] = [] data['highlights'].append( ['A curve with $C_3\\times C_3$ torsion', url_for('.show_ecnf', nf='2.0.3.1', class_label='a', conductor_label='2268.36.18', number=int(1))] ) data['highlights'].append( ['A curve with $C_4\\times C_4$ torsion', url_for('.show_ecnf', nf='2.0.4.1', class_label='b', conductor_label='5525.870.5', number=int(9))] ) data['highlights'].append( ['A curve with CM by $\\sqrt{-267}$', url_for('.show_ecnf', nf='2.2.89.1', class_label='a', conductor_label='81.1', number=int(1))] ) data['highlights'].append( ['An isogeny class with isogenies of degree $3$ and $89$ (and $267$)', url_for('.show_ecnf_isoclass', nf='2.2.89.1', class_label='a', conductor_label='81.1')] ) data['highlights'].append( ['A curve with everywhere good reduction, but no global minimal model', url_for('.show_ecnf', nf='2.2.229.1', class_label='a', conductor_label='1.1', number=int(1))] ) return render_template("ecnf-index.html", title="Elliptic Curves over Number Fields", data=data, bread=bread, learnmore=learnmore_list())