#6045: [with patch, needs review] Computation of Heegner points
---------------------------+------------------------------------------------
 Reporter:  robertwb       |       Owner:  was       
     Type:  defect         |      Status:  new       
 Priority:  major          |   Milestone:  sage-4.0.2
Component:  number theory  |    Keywords:            
 Reviewer:                 |      Author:            
   Merged:                 |  
---------------------------+------------------------------------------------

Comment(by cremona):

 REVIEW:  I applied this to 4.0.1, but got some doctest failures:
 {{{
 sage -t  "devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py"
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 5248:
     sage: E._heegner_best_tau(-7)
 Expected:
     (sqrt(7)*I - 17)/74
 Got:
     1/74*sqrt(-7) - 17/74
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 5250:
     sage: EllipticCurve('389a')._heegner_best_tau(-11)
 Expected:
     (sqrt(11)*I - 355)/778
 Got:
     1/778*sqrt(-11) - 355/778
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 5291:
     sage: P = E.heegner_point(-40); P
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-4.0.1/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1172, in
 run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_115[5]>", line 1, in <module>
         P = E.heegner_point(-Integer(40)); P###line 5291:
     sage: P = E.heegner_point(-40); P
       File "/home/john/sage-4.0.1/local/lib/python2.5/site-
 packages/sage/schemes/elliptic_curves/ell_rational_field.py", line 5335,
 in heegner_point
         raise ValueError, "Not enough precision (%s) to get heegner point
 exactly, try passing a larger max_prec." % (prec)
     ValueError: Not enough precision (2000) to get heegner point exactly,
 try passing a larger max_prec.
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 5301:
     sage: f = algdep(P[0], 5); f
 Expected:
     x^5 + 2*x^4 + x^3 - x^2 - x - 1
 Got:
     x^5 - x^4 + x^3 + x^2 - 2*x + 1
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 6825:
     sage: phi(CC.0)
 Expected:
     (-2.04158222510587 + 3.21664059900000e-29*I : -0.500000000000000 +
 0.0906126752327350*I : 1.00000000000000)
 Got:
     (287826.309565255 : -1.54417490329940e8 : 1.00000000000000)
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 3114:
     sage: X,Y=E.modular_parametrization()
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-4.0.1/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1172, in
 run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_70[3]>", line 1, in <module>
         X,Y=E.modular_parametrization()###line 3114:
     sage: X,Y=E.modular_parametrization()
     TypeError: iteration over non-sequence
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 3115:
     sage: X
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-4.0.1/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1172, in
 run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_70[4]>", line 1, in <module>
         X###line 3115:
     sage: X
     NameError: name 'X' is not defined
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 3117:
     sage: Y
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-4.0.1/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1172, in
 run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_70[5]>", line 1, in <module>
         Y###line 3117:
     sage: Y
     NameError: name 'Y' is not defined
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 3122:
     sage: q = X.parent().gen()
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-4.0.1/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1172, in
 run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_70[6]>", line 1, in <module>
         q = X.parent().gen()###line 3122:
     sage: q = X.parent().gen()
     NameError: name 'X' is not defined
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 3123:
     sage: E.defining_polynomial()(X,Y,1) + O(q^11) == 0
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-4.0.1/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1172, in
 run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_70[7]>", line 1, in <module>
         E.defining_polynomial()(X,Y,Integer(1)) + O(q**Integer(11)) ==
 Integer(0)###line 3123:
     sage: E.defining_polynomial()(X,Y,1) + O(q^11) == 0
     NameError: name 'X' is not defined
 **********************************************************************
 File "/home/john/sage-4.0.1/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 3133:
     sage: f/q == (X.derivative()/(2*Y+a1*X+a3))
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-4.0.1/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-4.0.1/local/bin/ncadoctest.py", line 1172, in
 run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_70[11]>", line 1, in <module>
         f/q == (X.derivative()/(Integer(2)*Y+a1*X+a3))###line 3133:
     sage: f/q == (X.derivative()/(2*Y+a1*X+a3))
     NameError: name 'X' is not defined
 **********************************************************************
 4 items had failures:
    2 of   5 in __main__.example_114
    2 of  11 in __main__.example_115
    1 of   5 in __main__.example_137
    6 of  12 in __main__.example_70
 ***Test Failed*** 11 failures.
 For whitespace errors, see the file
 /home/john/sage-4.0.1/tmp/.doctest_ell_rational_field.py
          [85.3 s]
 exit code: 1024
 }}}

 This is on a 32-bit machine -- possibly the problem?

 Note -- I'm planning to implement a better weierstrass function, calling
 the pari library.  In fact I already did that, got stuck on precision
 problems, then deleted that branch by mistake so it is back to square one.

 Also, for recognising the points, what I have always done is compute all
 the conjugates (not quite all, I do one from each complex conjugate pair)
 and then add them up (on C mod the lattice) before applying Weierstrass.
 I have never tried to recognise the points as points defined over the
 Hilbert class field.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6045#comment:8>
Sage <http://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
-~----------~----~----~----~------~----~------~--~---

Reply via email to