Opened 7 years ago
Closed 7 years ago
#12124 closed defect (fixed)
Fix Eisenstein L-series precision
Reported by: | jdemeyer | Owned by: | craigcitro |
---|---|---|---|
Priority: | minor | Milestone: | sage-4.8 |
Component: | modular forms | Keywords: | |
Cc: | Merged in: | sage-4.8.alpha6 | |
Authors: | Jeroen Demeyer | Reviewers: | Frithjof Schulze, David Loeffler |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
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:
- Using
float
has at most 53 bits precision, regardless of what precision is used in PARI/GP. - Using strings causes an additional loss of precision.
Letting PARI/GP compute the value of sqrt(Pi)
solves both these problems.
Attachments (1)
Change History (9)
Changed 7 years ago by
comment:1 Changed 7 years ago by
- Status changed from new to needs_review
comment:2 follow-up: ↓ 3 Changed 7 years ago by
comment:3 in reply to: ↑ 2 Changed 7 years ago by
Replying to fbissey:
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.
comment:4 Changed 7 years ago by
I backed out that portion of http://trac.sagemath.org/sage_trac/attachment/ticket/9958/trac_9958-fixing_numericalnoise-part1_p2.patch 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!
comment:5 Changed 7 years ago by
- Status changed from needs_review to needs_info
- Summary changed from Fix Eisenstein series precision to Fix Eisenstein L-series precision
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?
comment:6 Changed 7 years ago by
- Description modified (diff)
- Status changed from needs_info to needs_review
comment:7 Changed 7 years ago by
- Reviewers set to Frithjof Schulze, David Loeffler
- Status changed from needs_review to positive_review
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.
comment:8 Changed 7 years ago by
- Merged in set to sage-4.8.alpha6
- Resolution set to fixed
- Status changed from positive_review to closed
Just for clarification, does this work with either python-2.6 or 2.7 or does it require python-2.7?