def make_class(self): self.ECNF = ECNF.by_label(self.label) # Create a list of the curves in the class from the database self.db_curves = [ECNF(c) for c in db_ec().find( {'field_label' : self.field_label, 'conductor_label' : self.conductor_label, 'iso_label' : self.iso_label}).sort('number')] size = len(self.db_curves) # Extract the isogeny degree matrix from the database if possible, else create it if hasattr(self,'isogeny_matrix'): from sage.matrix.all import Matrix self.isogeny_matrix = Matrix(self.isogeny_matrix) else: self.isogeny_matrix = make_iso_matrix(self.db_curves) # Create isogeny graph: self.graph = make_graph(self.isogeny_matrix) P = self.graph.plot(edge_labels=True) self.graph_img = encode_plot(P) self.graph_link = '<img src="%s" width="200" height="150"/>' % self.graph_img self.isogeny_matrix_str = latex(matrix(self.isogeny_matrix)) self.curves = [[c.short_label, c.urls['curve'], c.latex_ainvs] for c in self.db_curves] self.urls = {} self.urls['class'] = url_for(".show_ecnf_isoclass", nf = self.field_label, conductor_label=self.conductor_label, class_label = self.iso_label) self.urls['conductor'] = url_for(".show_ecnf_conductor", nf = self.field_label, conductor_label=self.conductor_label) self.urls['field'] = url_for('.show_ecnf1', nf=self.ECNF.field_label) self.field = self.ECNF.field if self.field.is_real_quadratic(): self.hmf_label = "-".join([self.field.label,self.conductor_label,self.iso_label]) self.urls['hmf'] = url_for('hmf.render_hmf_webpage', field_label=self.field.label, label=self.hmf_label) if self.field.is_imag_quadratic(): self.bmf_label = "-".join([self.field.label,self.conductor_label,self.iso_label]) self.friends = [] if self.field.is_real_quadratic(): self.friends += [('Hilbert Modular Form '+self.hmf_label, self.urls['hmf'])] if self.field.is_imag_quadratic(): self.friends += [('Bianchi Modular Form %s not yet available' % self.bmf_label, '')] self.properties = [('Label', self.ECNF.label), (None, self.graph_link), ('Conductor', '%s' % self.ECNF.cond) ] self.bread = [('Elliptic Curves ', url_for(".index")), (self.ECNF.field_label, self.urls['field']), (self.ECNF.conductor_label, self.urls['conductor']), ('isogeny class %s' % self.ECNF.short_label, self.urls['class'])]
def make_class(self): self.ECNF = ECNF.by_label(self.label) # Create a list of the curves in the class from the database self.db_curves = [ ECNF(c) for c in db_ec().find({ 'field_label': self.field_label, 'conductor_label': self.conductor_label, 'iso_label': self.iso_label }).sort('number') ] size = len(self.db_curves) # Extract the isogeny degree matrix from the database if possible, else create it if hasattr(self, 'isogeny_matrix'): from sage.matrix.all import Matrix self.isogeny_matrix = Matrix(self.isogeny_matrix) else: self.isogeny_matrix = make_iso_matrix(self.db_curves) # Create isogeny graph: self.graph = make_graph(self.isogeny_matrix) P = self.graph.plot(edge_labels=True) self.graph_img = encode_plot(P) self.graph_link = '<img src="%s" width="200" height="150"/>' % self.graph_img self.isogeny_matrix_str = latex(matrix(self.isogeny_matrix)) self.curves = [[c.short_label, c.urls['curve'], c.latex_ainvs] for c in self.db_curves] self.urls = {} self.urls['class'] = url_for(".show_ecnf_isoclass", nf=self.field_label, conductor_label=self.conductor_label, class_label=self.iso_label) self.urls['conductor'] = url_for(".show_ecnf_conductor", nf=self.field_label, conductor_label=self.conductor_label) self.urls['field'] = url_for('.show_ecnf1', nf=self.ECNF.field_label) self.field = self.ECNF.field if self.field.is_real_quadratic(): self.hmf_label = "-".join( [self.field.label, self.conductor_label, self.iso_label]) self.urls['hmf'] = url_for('hmf.render_hmf_webpage', field_label=self.field.label, label=self.hmf_label) if self.field.is_imag_quadratic(): self.bmf_label = "-".join( [self.field.label, self.conductor_label, self.iso_label]) self.friends = [] if self.field.is_real_quadratic(): self.friends += [('Hilbert Modular Form ' + self.hmf_label, self.urls['hmf'])] if self.field.is_imag_quadratic(): self.friends += [ ('Bianchi Modular Form %s not yet available' % self.bmf_label, '') ] self.properties = [('Label', self.ECNF.label), (None, self.graph_link), ('Conductor', '%s' % self.ECNF.cond)] self.bread = [('Elliptic Curves ', url_for(".index")), (self.ECNF.field_label, self.urls['field']), (self.ECNF.conductor_label, self.urls['conductor']), ('isogeny class %s' % self.ECNF.short_label, self.urls['class'])]
def make_class(self): # Create a list of the curves in the class from the database self.db_curves = [c for c in db_ec().find( {'field_label': self.field_label, 'conductor_label': self.conductor_label, 'iso_label': self.iso_label}).sort('number')] size = len(self.db_curves) # Extract the isogeny degree matrix from the database if possible, else create it if hasattr(self, 'isogeny_matrix'): from sage.matrix.all import Matrix self.isogeny_matrix = Matrix(self.isogeny_matrix) else: self.isogeny_matrix = make_iso_matrix(self.db_curves) # Create isogeny graph: self.graph = make_graph(self.isogeny_matrix) P = self.graph.plot(edge_labels=True) self.graph_img = encode_plot(P) self.graph_link = '<img src="%s" width="200" height="150"/>' % self.graph_img self.isogeny_matrix_str = latex(matrix(self.isogeny_matrix)) self.field = field_pretty(self.field_label) self.field_knowl = nf_display_knowl(self.field_label, lmfdb.base.getDBConnection(), self.field) def curve_url(c): return url_for(".show_ecnf", nf=c['field_label'], conductor_label=c['conductor_label'], class_label=c['iso_label'], number=c['number']) self.curves = [[c['short_label'], curve_url(c), web_ainvs(self.field_label,c['ainvs'])] for c in self.db_curves] self.urls = {} self.urls['class'] = url_for(".show_ecnf_isoclass", nf=self.field_label, conductor_label=self.conductor_label, class_label=self.iso_label) self.urls['conductor'] = url_for(".show_ecnf_conductor", nf=self.field_label, conductor_label=self.conductor_label) self.urls['field'] = url_for('.show_ecnf1', nf=self.field_label) real_quadratic = self.signature == [2,0] imag_quadratic = self.signature == [0,1] if real_quadratic: self.hmf_label = "-".join([self.field_label, self.conductor_label, self.iso_label]) self.urls['hmf'] = url_for('hmf.render_hmf_webpage', field_label=self.field_label, label=self.hmf_label) if imag_quadratic: self.bmf_label = "-".join([self.field_label, self.conductor_label, self.iso_label]) self.friends = [] if real_quadratic: self.friends += [('Hilbert Modular Form ' + self.hmf_label, self.urls['hmf'])] if imag_quadratic: self.friends += [('Bianchi Modular Form %s not yet available' % self.bmf_label, '')] self.properties = [('Base field', self.field), ('Label', self.class_label), (None, self.graph_link), ('Conductor', '%s' % self.conductor_label) ] self.bread = [('Elliptic Curves ', url_for(".index")), (self.field_label, self.urls['field']), (self.conductor_label, self.urls['conductor']), ('isogeny class %s' % self.short_label, self.urls['class'])]
def make_class(self): # Create a list of the curves in the class from the database self.db_curves = [ c for c in db_ec().find({ 'field_label': self.field_label, 'conductor_label': self.conductor_label, 'iso_label': self.iso_label }).sort('number') ] size = len(self.db_curves) # Rank or bounds try: self.rk = web_latex(self.db_curves[0]['rank']) except KeyError: self.rk = "?" try: self.rk_bnds = "%s...%s" % tuple(self.db_curves[0]['rank_bounds']) except KeyError: self.rank_bounds = [0, sage.rings.infinity.Infinity] self.rk_bnds = "not recorded" # Extract the isogeny degree matrix from the database if possible, else create it if hasattr(self, 'isogeny_matrix'): from sage.matrix.all import Matrix self.isogeny_matrix = Matrix(self.isogeny_matrix) else: self.isogeny_matrix = make_iso_matrix(self.db_curves) # Create isogeny graph: self.graph = make_graph(self.isogeny_matrix) P = self.graph.plot(edge_labels=True) self.graph_img = encode_plot(P) self.graph_link = '<img src="%s" width="200" height="150"/>' % self.graph_img self.isogeny_matrix_str = latex(matrix(self.isogeny_matrix)) self.field = field_pretty(self.field_label) self.field_knowl = nf_display_knowl(self.field_label, lmfdb.base.getDBConnection(), self.field) def curve_url(c): return url_for(".show_ecnf", nf=c['field_label'], conductor_label=c['conductor_label'], class_label=c['iso_label'], number=c['number']) self.curves = [[ c['short_label'], curve_url(c), web_ainvs(self.field_label, c['ainvs']) ] for c in self.db_curves] self.urls = {} self.urls['class'] = url_for(".show_ecnf_isoclass", nf=self.field_label, conductor_label=self.conductor_label, class_label=self.iso_label) self.urls['conductor'] = url_for(".show_ecnf_conductor", nf=self.field_label, conductor_label=self.conductor_label) self.urls['field'] = url_for('.show_ecnf1', nf=self.field_label) sig = self.signature real_quadratic = sig == [2, 0] totally_real = sig[1] == 0 imag_quadratic = sig == [0, 1] if totally_real: self.hmf_label = "-".join( [self.field_label, self.conductor_label, self.iso_label]) self.urls['hmf'] = url_for('hmf.render_hmf_webpage', field_label=self.field_label, label=self.hmf_label) self.urls['Lfunction'] = url_for("l_functions.l_function_hmf_page", field=self.field_label, label=self.hmf_label, character='0', number='0') if imag_quadratic: self.bmf_label = "-".join( [self.field_label, self.conductor_label, self.iso_label]) self.friends = [] if totally_real: self.friends += [('Hilbert Modular Form ' + self.hmf_label, self.urls['hmf'])] self.friends += [('L-function', self.urls['Lfunction'])] if imag_quadratic: self.friends += [ ('Bianchi Modular Form %s not available' % self.bmf_label, '') ] self.properties = [('Base field', self.field), ('Label', self.class_label), (None, self.graph_link), ('Conductor', '%s' % self.conductor_label)] if self.rk != '?': self.properties += [('Rank', '%s' % self.rk)] else: if self.rk_bnds == 'not recorded': self.properties += [('Rank', '%s' % self.rk_bnds)] else: self.properties += [('Rank bounds', '%s' % self.rk_bnds)] self.bread = [('Elliptic Curves ', url_for(".index")), (self.field_label, self.urls['field']), (self.conductor_label, self.urls['conductor']), ('isogeny class %s' % self.short_label, self.urls['class'])]
def make_class(self): # Create a list of the curves in the class from the database self.db_curves = [c for c in db_ec().find( {'field_label': self.field_label, 'conductor_label': self.conductor_label, 'iso_label': self.iso_label}).sort('number')] size = len(self.db_curves) # Rank or bounds try: self.rk = web_latex(self.db_curves[0]['rank']) except KeyError: self.rk = "?" try: self.rk_bnds = "%s...%s" % tuple(self.db_curves[0]['rank_bounds']) except KeyError: self.rank_bounds = [0, sage.rings.infinity.Infinity] self.rk_bnds = "not recorded" # Extract the isogeny degree matrix from the database if possible, else create it if hasattr(self, 'isogeny_matrix'): from sage.matrix.all import Matrix self.isogeny_matrix = Matrix(self.isogeny_matrix) else: self.isogeny_matrix = make_iso_matrix(self.db_curves) # Create isogeny graph: self.graph = make_graph(self.isogeny_matrix) P = self.graph.plot(edge_labels=True) self.graph_img = encode_plot(P) self.graph_link = '<img src="%s" width="200" height="150"/>' % self.graph_img self.isogeny_matrix_str = latex(matrix(self.isogeny_matrix)) self.field = field_pretty(self.field_label) self.field_knowl = nf_display_knowl(self.field_label, lmfdb.base.getDBConnection(), self.field) def curve_url(c): return url_for(".show_ecnf", nf=c['field_label'], conductor_label=c['conductor_label'], class_label=c['iso_label'], number=c['number']) self.curves = [[c['short_label'], curve_url(c), web_ainvs(self.field_label,c['ainvs'])] for c in self.db_curves] self.urls = {} self.urls['class'] = url_for(".show_ecnf_isoclass", nf=self.field_label, conductor_label=self.conductor_label, class_label=self.iso_label) self.urls['conductor'] = url_for(".show_ecnf_conductor", nf=self.field_label, conductor_label=self.conductor_label) self.urls['field'] = url_for('.show_ecnf1', nf=self.field_label) sig = self.signature real_quadratic = sig == [2,0] totally_real = sig[1] == 0 imag_quadratic = sig == [0,1] if totally_real: self.hmf_label = "-".join([self.field_label, self.conductor_label, self.iso_label]) self.urls['hmf'] = url_for('hmf.render_hmf_webpage', field_label=self.field_label, label=self.hmf_label) self.urls['Lfunction'] = url_for("l_functions.l_function_hmf_page", field=self.field_label, label=self.hmf_label, character='0', number='0') if imag_quadratic: self.bmf_label = "-".join([self.field_label, self.conductor_label, self.iso_label]) self.friends = [] if totally_real: self.friends += [('Hilbert Modular Form ' + self.hmf_label, self.urls['hmf'])] self.friends += [('L-function', self.urls['Lfunction'])] if imag_quadratic: self.friends += [('Bianchi Modular Form %s not available' % self.bmf_label, '')] self.properties = [('Base field', self.field), ('Label', self.class_label), (None, self.graph_link), ('Conductor', '%s' % self.conductor_label) ] if self.rk != '?': self.properties += [('Rank', '%s' % self.rk)] else: if self.rk_bnds == 'not recorded': self.properties += [('Rank', '%s' % self.rk_bnds)] else: self.properties += [('Rank bounds', '%s' % self.rk_bnds)] self.bread = [('Elliptic Curves ', url_for(".index")), (self.field_label, self.urls['field']), (self.conductor_label, self.urls['conductor']), ('isogeny class %s' % self.short_label, self.urls['class'])]