Thank you very much! I didn't know sage-nt existed :-) Misja
On Thursday, 28 April 2016 15:13:20 UTC+1, John Cremona wrote: > > 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] <javascript:>> > 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] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > 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.
