Hi David,

Thanks for your reply! It's a good test to do (that I hadn't thought of 
before), but unfortunately even with 'ModularSymbols_clear_cache()' in 
between the two runs, the 'good' code is still printing the wrong answer in 
a second run. Could it be another (i.e. non-modular symbols) caching 
problem?

Misja

On Tuesday, 3 May 2016 13:08:29 UTC+1, David Loeffler wrote:
>
> What happens if you run the bad code, then run 
> "ModularSymbols_clear_cache()", then the good code? Do you get the same 
> discrepancy?
>
> David
>
> On 28 April 2016 at 15:16, Misja <[email protected] <javascript:>> wrote:
>
>> 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]> 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] <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.

Reply via email to