Opened 10 years ago

Closed 9 years ago

#13156 closed defect (fixed)

The is_old method from sage.modular.modform.element.ModularFormElement doesn't work correctly

Reported by: Snark Owned by: craigcitro
Priority: major Milestone: sage-5.11
Component: modular forms Keywords: sd51
Cc: Merged in: sage-5.11.rc0
Authors: David Loeffler Reviewers: Alex Ghitza
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges


sage: E=ModularForms(3,12).cuspidal_subspace()
sage: f=E.gens()[0]
sage: g=f-f
sage: g.is_old()

This is definitely a case where sage returns a wrong answer.

Attachments (1)

trac_13156.patch (1.9 KB) - added by davidloeffler 9 years ago.
patch against 5.11.beta3

Download all attachments as: .zip

Change History (6)

comment:1 Changed 9 years ago by davidloeffler

I traced this back to a problem with the __call__ method's membership testing code for modular forms subspaces. The problem is that it expects imprecise q-expansions, and fails badly when given the zero q-expansion as argument.

Last edited 9 years ago by davidloeffler (previous) (diff)

comment:2 Changed 9 years ago by davidloeffler

  • Keywords sd51 added

Test case for the underlying bug:

sage: R.<q> = QQ[[]]                                           
sage: ModularForms(2, 8)(q^20 + q^120)
TypeError                                 Traceback (most recent call last)
<ipython-input-101-f1640b98a1fd> in <module>()
----> 1 ModularForms(Integer(2), Integer(8))(q**Integer(20) + q**Integer(120))

/storage/masiao/sage-5.11.beta3/local/lib/python2.7/site-packages/sage/modular/modform/space.pyc in __call__(self, x, check)
   1147                 x_potential = self.free_module().linear_combination_of_basis(x_potential)
   1148                 x_potential = element.ModularFormElement(self, x_potential)
-> 1149                 for i in range(int(, x.prec()):
   1150                     if x_potential[i] != x[i]:
   1151                         raise ValueError, "q-expansion does not correspond to a form in self"

TypeError: range() integer end argument expected, got PlusInfinity.

Changed 9 years ago by davidloeffler

patch against 5.11.beta3

comment:3 Changed 9 years ago by davidloeffler

  • Authors set to David Loeffler
  • Status changed from new to needs_review

comment:4 Changed 9 years ago by AlexGhitza

  • Milestone set to sage-5.11
  • Reviewers set to Alex Ghitza
  • Status changed from needs_review to positive_review

comment:5 Changed 9 years ago by jdemeyer

  • Merged in set to sage-5.11.rc0
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.