DATA = "ranks/" def ranks(N): filename = '%sranks-%s.sobj'%(DATA,N) if os.path.exists(filename): D = load(filename) else: D = ModularSymbols(N,sign=1).cuspidal_submodule().new_submodule().decomposition() for i,A in enumerate(D): eps = -A.atkin_lehner_operator().matrix()[0,0] winding_element = A.rational_period_mapping()(A.ambient_module()([0,oo])) if eps == 1 and winding_element == 0: print N, i, A.dimension(), eps, winding_element == 0 save(D, filename) for N in primes(10000): # print N ranks(N)