I have forwarded your question to sage-nt@googlegroups since there are people who read that who may be able to answer yet do not read sage-support.
Feel free to apply to join sage-nt. John Cremona On 28 April 2016 at 15:09, Misja <[email protected]> wrote: > When understand the specific reason why my code is not working properly, I > managed to pin it down to the following mysterious behaviour of q_eigenform. > > First run the following code in sage. > > G=DirichletGroup(80); > chi=G[22]; > D=ModularSymbols(chi,2,-1).cuspidal_subspace().new_subspace().decomposition(); > for f in D: > elt=f.q_eigenform(10,'alpha')[3]; > N=elt.parent().absolute_field('a'); > fact=N.factor(2); > for P,e in fact: > res_field=N.residue_field(P); > print res_field(elt); > > > It will print > > 0 > 0 > 0 > 0 > > which, I think, is the 'right' answer. > > > Now close your sage session entirely. Open a new session and then run the > following *silly* code: > > G=DirichletGroup(80); > for chi in G: > > D=ModularSymbols(chi,2,-1).cuspidal_subspace().new_subspace().decomposition(); > for f in D: > elt=f.q_eigenform(10,'alpha')[3]; > if not elt.parent()==QQ: > K=elt.parent().absolute_field('b'); > if chi==G[22]: > fact=K.factor(2); > for P,e in fact: > res_field=K.residue_field(P); > print res_field(elt); > > > It will print: > > 0 > 0 > 1 > 0 > > As far as I understand the theory, this cannot happen. If you let sage print > the alpha^3 coefficient of you see that in both cases it picks a different > q_eigenform in f, the Galois conjugacy class of newforms. Although this can > be a bit annoying, in theory it is fine. But I am pretty sure that when your > reduce this coefficient modulo some prime P, any two elements of the same > Galois conjugacy class can differ at most by some automorphism of the > residue field (and obviously 1 and 0 do not satisfy this criterion). > > > To make matters worse: if you run a single sage session and you run the > 'good' code first and the 'bad' code second, then suddenly the 'bad' code is > fixed and printing only 0s. If you run the 'bad' code first and the 'good' > code second, then they are both 'bad' and the 'good' code suddenly prints > 0,0,1,0 as well. > > By trying I found out that this is because somehow q_eigenform picks the > same q_eigenform as whichever code that ran first and somehow these choices > are not compatible! I don't know the inner workings of q_eigenform, but this > behaviour seems strange to me. > > Can anyone explain what is going on here? Is it a bug? > > Thanks! > > -- > You received this message because you are subscribed to the Google Groups > "sage-support" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sage-support. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
