#9247: A collection of little improvements to elliptic curves
-------------------------------+--------------------------------------------
Reporter: rlm | Owner: cremona
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.4.4
Component: elliptic curves | Keywords:
Author: Robert Miller | Upstream: N/A
Reviewer: John Cremona | Merged:
Work_issues: |
-------------------------------+--------------------------------------------
Changes (by cremona):
* cc: wuthrich (added)
* reviewer: => John Cremona
* milestone: => sage-4.4.4
Comment:
Looks good and applies to 4.4.4.alpha0. I am currently testing all
sage/schemes/elliptic_curves.
One point about the (good) new rank_bound parameter for the point_search
function: is it not rather inefficient to saturate completely after every
point found? In my code (in eclib's points own search function) I only
partially saturate after each point, using a bound (i.e. max_prime) of 19.
Then one the rank bound is reached (or at the end, if rank_bound is None)
so a complete saturation.
I also think we should have an option for this function to not do the
saturation step (which also discards all points found and replaces them
for a Z-basis for their saturation), and just returns a list of the raw
points actually found. If you agree, we should open a new ticket.
(Obviously the current behaviour would be the default, for backward
compatibility).
Test failure in sha_tate:
{{{
File "/home/john/sage-4.4.4.alpha0/devel/sage-
tests/sage/schemes/elliptic_curves/sha_tate.py", line 637:
sage: e.sha().an_padic(7)
Exception raised:
Traceback (most recent call last):
File "/home/john/sage-current/local/bin/ncadoctest.py", line 1231,
in run_one_test
self.run_one_example(test, example, filename, compileflags)
File "/home/john/sage-current/local/bin/sagedoctest.py", line 38, in
run_one_example
OrigDocTestRunner.run_one_example(self, test, example, filename,
compileflags)
File "/home/john/sage-current/local/bin/ncadoctest.py", line 1172,
in run_one_example
compileflags, 1) in test.globs
File "<doctest __main__.example_5[14]>", line 1, in <module>
e.sha().an_padic(Integer(7))###line 637:
sage: e.sha().an_padic(7)
File "/home/john/sage-current/local/lib/python/site-
packages/sage/schemes/elliptic_curves/sha_tate.py", line 464, in an_padic
ms = self.E.modular_symbol(sign=+1, normalize='L_ratio')
File "/home/john/sage-current/local/lib/python/site-
packages/sage/schemes/elliptic_curves/ell_rational_field.py", line 1277,
in modular_symbol
M = ell_modular_symbols.ModularSymbolECLIB(self, sign,
normalize=normalize)
File "/home/john/sage-current/local/lib/python/site-
packages/sage/schemes/elliptic_curves/ell_modular_symbols.py", line 474,
in __init__
self._modsym = ECModularSymbol(E)
File "newforms.pyx", line 75, in
sage.libs.cremona.newforms.ECModularSymbol.__init__
(sage/libs/cremona/newforms.cpp:1794)
OverflowError: long int too large to convert to int
}}}
and similar in padics:
{{{
File "/home/john/sage-4.4.4.alpha0/devel/sage-
tests/sage/schemes/elliptic_curves/padics.py", line 91:
sage: [ms(1/11), ms(1/3), ms(0), ms(oo)]
Exception raised:
Traceback (most recent call last):
File "/home/john/sage-current/local/bin/ncadoctest.py", line 1231,
in run_one_test
self.run_one_example(test, example, filename, compileflags)
File "/home/john/sage-current/local/bin/sagedoctest.py", line 38, in
run_one_example
OrigDocTestRunner.run_one_example(self, test, example, filename,
compileflags)
File "/home/john/sage-current/local/bin/ncadoctest.py", line 1172,
in run_one_example
compileflags, 1) in test.globs
File "<doctest __main__.example_1[7]>", line 1, in <module>
[ms(Integer(1)/Integer(11)), ms(Integer(1)/Integer(3)),
ms(Integer(0)), ms(oo)]###line 91:
sage: [ms(1/11), ms(1/3), ms(0), ms(oo)]
File "/home/john/sage-current/local/lib/python/site-
packages/sage/schemes/elliptic_curves/ell_modular_symbols.py", line 523,
in __call__
return (self._atzero - self._modsym(r))*self._scaling
File "newforms.pyx", line 130, in
sage.libs.cremona.newforms.ECModularSymbol.__call__
(sage/libs/cremona/newforms.cpp:2024)
File "rational.pyx", line 367, in
sage.rings.rational.Rational.__init__ (sage/rings/rational.c:5781)
File "rational.pyx", line 521, in
sage.rings.rational.Rational.__set_value (sage/rings/rational.c:7052)
TypeError: Unable to coerce +Infinity (<class
'sage.rings.infinity.PlusInfinity'>) to Rational
}}}
but I have no idea what in the patch could have caused this!
And finally:
{{{
File "/home/john/sage-4.4.4.alpha0/devel/sage-
tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 1211:
sage: M=E.modular_symbol()
Expected nothing
Got:
Warning : Could not normalize the modular symbols, maybe all further
results will be multiplied by -1, 2 or -2.
**********************************************************************
File "/home/john/sage-4.4.4.alpha0/devel/sage-
tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 1212:
sage: M(1/7)
Expected:
2
Got:
-2
**********************************************************************
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9247#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.