---------- Forwarded message ----------
From: Misja <[email protected]>
Date: 28 April 2016 at 15:09
Subject: [sage-support] Mysterious behaviour of q_eigenform... Bug?
To: sage-support <[email protected]>
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-nt" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send an email to [email protected].
Visit this group at https://groups.google.com/group/sage-nt.
For more options, visit https://groups.google.com/d/optout.