def random_form(): label = random_object_from_collection( db_emf() )['hecke_orbit_label'] level, weight, character, label = parse_newform_label(label) args={} args['level'] = level args['weight'] = weight args['character'] = character args['label'] = label return redirect(url_for(".render_elliptic_modular_forms", **args), 301)
def __init__(self, level=1, weight=12, character=1, label='a', prec=0, parent=None, update_from_db=True,**kwargs): emf_logger.debug("In WebNewForm {0}".format((level,weight,character,label,parent,update_from_db))) if isinstance(level,basestring) or kwargs.has_key('hecke_orbit_label'): hecke_orbit_label = kwargs.get('hecke_orbit_label', level) level,weight,character,label = parse_newform_label(hecke_orbit_label) self._reduction = (type(self),(level,weight,character,label),{'parent':parent,'update_from_db':update_from_db}) if isinstance(character, WebChar): character_number = character.number else: character_number = character character = None if parent is None else parent.character if not isinstance(label,basestring): if isinstance(label,(int,Integer)): label = cremona_letter_code(label) else: raise ValueError,"Need label either string or integer! We got:{0}".format(label) emf_logger.debug("Before init properties 0") self._properties = WebProperties( WebInt('level', value=level), WebInt('weight', value=weight), WebCharProperty('character', modulus=level, number=character_number, value = character, include_in_update = True if character is None else False), WebStr('character_naming_scheme', value='Conrey'), WebStr('sage_version', value=''), WebStr('hecke_orbit_label', default_value=newform_label(level, weight, character_number, label)), WebStr('label', default_value=label), WebInt('dimension'), WebqExp('q_expansion'), WebCoeffs('_coefficients'), WebDict('_embeddings'), WebInt('prec',value=0, save_to_db=False, save_to_fs=True), WebNumberField('base_ring'), WebNumberField('coefficient_field'), WebInt('coefficient_field_degree'), WebList('twist_info', required = False), WebInt('is_cm', required = False), WebInt('cm_disc', required = False, default_value=0), WebDict('_cm_values',required=False), WebBool('is_cuspidal',default_value=True), WebDict('satake', required=False), WebDict('_atkin_lehner_eigenvalues', required=False), WebBool('is_rational'), WebPoly('absolute_polynomial'), WebFloat('version', value=float(emf_version), save_to_fs=True), WebDict('explicit_formulas',required=False), WebDate('creation_date',value=None), WebModFormSpaceProperty('parent', value=parent, level = level, weight = weight, character = character_number, update_hecke_orbits=False, update_from_db=update_from_db) # include_in_update = True if parent is None # else False), ) self._add_to_fs_query = {'prec': {'$gt': int(prec-1)}} super(WebNewForm, self).__init__( update_from_db=update_from_db, **kwargs ) self._add_to_fs_query = {'prec': {'$gt': int(self.prec-1)}} # We're setting the WebEigenvalues property after calling __init__ of the base class # because it will set hecke_orbit_label from the db first ## ## We don't init the eigenvalues (since E*v is slow) ## unless we (later) request a coefficient which is not ## in self._coefficients self.eigenvalues = WebEigenvalues(self.hecke_orbit_label, prec = self.prec, \ init_dynamic_properties=False, \ update_from_db = False) self.make_code_snippets()
def __init__(self, level=1, weight=12, character=1, label='a', prec=10, parent=None, update_from_db=True,**kwargs): emf_logger.debug("In WebNewForm {0}".format((level,weight,character,label,parent,update_from_db))) if isinstance(level,basestring) or kwargs.has_key('hecke_orbit_label'): hecke_orbit_label = kwargs.get('hecke_orbit_label', level) level,weight,character,label = parse_newform_label(hecke_orbit_label) self._reduction = (type(self),(level,weight,character,label),{'parent':parent,'update_from_db':update_from_db}) if isinstance(character, WebChar): character_number = character.number else: character_number = character character = None if parent is None else parent.character if not isinstance(label,basestring): if isinstance(label,(int,Integer)): label = cremona_letter_code(label) else: raise ValueError,"Need label either string or integer! We got:{0}".format(label) emf_logger.debug("Before init properties 0") self._properties = WebProperties( WebInt('level', value=level), WebInt('weight', value=weight), WebCharProperty('character', modulus=level, number=character_number, value = character, include_in_update = True if character is None else False), WebStr('character_naming_scheme', value='Conrey'), WebStr('sage_version', value=''), WebStr('hecke_orbit_label', default_value=newform_label(level, weight, character_number, label)), WebStr('label', default_value=label), WebInt('dimension'), WebqExp('q_expansion'), WebDict('_coefficients'), WebDict('_embeddings'), WebInt('prec',value=0, save_to_db=False, save_to_fs=True), WebNumberField('base_ring'), WebNumberField('coefficient_field'), WebInt('coefficient_field_degree'), WebList('twist_info', required = False), WebInt('is_cm', required = False), WebInt('cm_disc', required = False, default_value=0), WebDict('_cm_values',required=False), WebBool('is_cuspidal',default_value=True), WebDict('satake', required=False), WebDict('_atkin_lehner_eigenvalues', required=False), WebBool('is_rational'), WebPoly('absolute_polynomial'), WebFloat('version', value=float(emf_version), save_to_fs=True), WebDict('explicit_formulas',required=False), WebDate('creation_date',value=None), WebModFormSpaceProperty('parent', value=parent, level = level, weight = weight, character = character_number, update_hecke_orbits=False, update_from_db=update_from_db) # include_in_update = True if parent is None # else False), ) emf_logger.debug("After init properties 1, update_from_db = {}".format(update_from_db)) self._add_to_fs_query = {'prec': {'$gt': int(prec-1)}} emf_logger.debug("add_to_fs_query = {}".format(self._add_to_fs_query)) super(WebNewForm, self).__init__( update_from_db=update_from_db, **kwargs ) emf_logger.debug("After init properties 2") self._add_to_fs_query = {'prec': {'$gt': int(self.prec-1)}} # We're setting the WebEigenvalues property after calling __init__ of the base class # because it will set hecke_orbit_label from the db first ## ## We don't init the eigenvalues (since E*v is slow) ## unless we (later) request a coefficient which is not ## in self._coefficients self.eigenvalues = WebEigenvalues(self.hecke_orbit_label, prec = self.prec, \ init_dynamic_properties=False, \ update_from_db = update_from_db) emf_logger.debug("After init properties 3")