Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Eisenstein L-series precision #12124

Closed
jdemeyer opened this issue Dec 6, 2011 · 9 comments
Closed

Fix Eisenstein L-series precision #12124

jdemeyer opened this issue Dec 6, 2011 · 9 comments

Comments

@jdemeyer
Copy link

jdemeyer commented Dec 6, 2011

The LCalc interface uses PARI/GP through strings. This is problematic for the Eisenstein series L-function where Sage passes the value of

str(float(pi)**0.5)

to PARI/GP. There are two problems with this:

  1. Using float has at most 53 bits precision, regardless of what precision is used in PARI/GP.
  2. Using strings causes an additional loss of precision.
    Letting PARI/GP compute the value of sqrt(Pi) solves both these problems.

Component: modular forms

Author: Jeroen Demeyer

Reviewer: Frithjof Schulze, David Loeffler

Merged: sage-4.8.alpha6

Issue created by migration from https://trac.sagemath.org/ticket/12124

@jdemeyer
Copy link
Author

jdemeyer commented Dec 6, 2011

comment:1

Attachment: 12124_eisenstein.patch.gz

@kiwifb
Copy link
Member

kiwifb commented Dec 7, 2011

comment:2

Just for clarification, does this work with either python-2.6 or 2.7 or does it require python-2.7?

@jdemeyer
Copy link
Author

jdemeyer commented Dec 7, 2011

comment:3

Replying to @kiwifb:

Just for clarification, does this work with either python-2.6 or 2.7 or does it require python-2.7?

It should have nothing to do with Python, it is simply a problem that I discovered because of the Python upgrade.

@strogdon
Copy link

comment:4

I backed out that portion of https://github.com/sagemath/sage/files/ticket9958/trac_9958-fixing_numericalnoise-part1_p2.patch.gz from #9958 that touched sage/modular/modform/eis_series.py in my build of sage-4.8.alpha3 with python-2.7 and applied the eisenstein patch of this ticket. Testing the touched file passes on x86 and amd64

./sage -t -long  -force_lib devel/sage-main/sage/modular/modform/eis_series.py
sage -t -long -force_lib "devel/sage-main/sage/modular/modform/eis_series.py"
         [2.6 s]
 
----------------------------------------------------------------------
All tests passed!

@loefflerd
Copy link
Mannequin

loefflerd mannequin commented Dec 18, 2011

comment:5

I've assembled a team of people at SD35 to do some modular forms patch reviewing, and we saw this one. Could you perhaps give us a tiny bit of background on what's going on here and why the change is needed?

@loefflerd loefflerd mannequin changed the title Fix Eisenstein series precision Fix Eisenstein L-series precision Dec 18, 2011
@loefflerd loefflerd mannequin added s: needs info and removed s: needs review labels Dec 18, 2011
@jdemeyer

This comment has been minimized.

@loefflerd
Copy link
Mannequin

loefflerd mannequin commented Dec 18, 2011

Reviewer: Frithjof Schulze, David Loeffler

@loefflerd
Copy link
Mannequin

loefflerd mannequin commented Dec 18, 2011

comment:7

Frithjof and I both looked at this during SD35, and it looks fine. There is some oddness in the eisenstein_series_lseries code -- it is weird that the prec argument is used as both a power series precision and a real-number precision -- but we both feel that is orthogonal to this patch.

@jdemeyer
Copy link
Author

Merged: sage-4.8.alpha6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants