On Jul 29, 12:03 am, William Stein <[email protected]> wrote: > On Thursday, July 28, 2011, Jack Fearnley <[email protected]> wrote: > > I read in the help that heights have only been implemented for elliptic > > curves over the rationals. My research involves computing heights of > algebraic points on elliptic curves and I have been using Magma for this. > > > A colleague of mine claimed that Sage could compute heights over number > > fields and demonstrated with example 2 from Siverman's 1988 paper* > > > I confirmed this on my Sage (version 4.6.2) and also successfully > > reproduced example 1. > > > Suitably encouraged, I attempted to compute some heights on E37b over a > > cyclic cubic extension and failed with error messages. > > > > > Is anyone working on implementing this functionality? > > Can anyone explain why Silverman's examples work? > > My understanding is that heights over number fields are fully implemented in > Sage and have been for *years*. What doc says otherwise? What exactly > fails? Post an exact session. > > > > > > > > > > > Best wishes, > > Jack Fearnley > > > * Computing Heights on Elliptic Curves > > Math. Comp. vol 51 No 183 (Jul 1988) pp 339-358 > >http://www.jstor.org/pss/2008597 > > > -- > > 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-support > > > URL:http://www.sagemath.org > > -- > William Stein > Professor of Mathematics > University of Washingtonhttp://wstein.org
Thanks for your prompt reply. I must have triggered some old documentation which said heights were not implemented over number fields but now I cannot find it. Anything I can find says they are implemented! My apologies. I would still like to know why my example fails. Perhaps the curve ceases to be minimal? The following sample compute two heights. the first, with r=1 seems to work. The second, with r=2, fails with a long traceback ending with a Pari error code. ---------------------------------------------------------------------- | Sage Version 4.6.2, Release Date: 2011-02-25 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- sage: r=1 sage: sage: u1=7*r^2+12*r+9 sage: sage: u2=9*r^2-12*r+7 sage: sage: ur=u1/u2;ur 7 sage: sage: Kr.<a>=NumberField(x^3-ur-4*ur*x-ur^2);Kr Number Field in a with defining polynomial x^3 - 28*x - 56 sage: sage: E37r=EllipticCurve(Kr,[4,0,1,0,0]);E37r Elliptic Curve defined by y^2 + 4*x*y + y = x^3 over Number Field in a with defining polynomial x^3 - 28*x - 56 sage: sage: Pr=E37r(a,ur) sage: sage: Pr (a : 7 : 1) sage: sage: Pr.height()/2 0.687081703215067 sage: r=2 sage: u1=7*r^2+12*r+9 sage: sage: u2=9*r^2-12*r+7 sage: sage: ur=u1/u2;ur 61/19 sage: sage: Kr.<a>=NumberField(x^3-ur-4*ur*x-ur^2);Kr Number Field in a with defining polynomial x^3 - 244/19*x - 4880/361 sage: sage: E37r=EllipticCurve(Kr,[4,0,1,0,0]);E37r Elliptic Curve defined by y^2 + 4*x*y + y = x^3 over Number Field in a with defining polynomial x^3 - 244/19*x - 4880/361 sage: sage: Pr=E37r(a,ur) sage: sage: Pr (a : 61/19 : 1) sage: sage: Pr.height()/2 --------------------------------------------------------------------------- PariError Traceback (most recent call last) /home/jack/<ipython console> in <module>() /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ ell_point.pyc in height(self, precision) 1934 1935 """ -> 1936 if self.has_finite_order(): 1937 return rings.QQ(0) 1938 /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ ell_point.pyc in has_finite_order(self) 1542 """ 1543 if self.is_zero(): return True -> 1544 return self.order() != oo 1545 1546 def has_infinite_order(self): /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ ell_point.pyc in order(self) 1509 N = E._torsion_order 1510 except AttributeError: -> 1511 N = E._torsion_bound() 1512 1513 # Now self is a torsion point iff it is killed by N: /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ ell_number_field.pyc in _torsion_bound(self, number_of_places) 1379 k = 0 1380 K = E.base_field() -> 1381 OK = K.ring_of_integers() 1382 disc = E.discriminant() 1383 p = Integer(1) /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/rings/number_field/ number_field_base.so in sage.rings.number_field.number_field_base.NumberField.ring_of_integers (sage/rings/number_field/number_field_base.c:1310)() /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/rings/number_field/ number_field.pyc in maximal_order(self, v) 5410 pass 5411 -> 5412 B = map(self, self._pari_integral_basis(v = v)) 5413 5414 if len(v) == 0 or v is None: /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/rings/number_field/ number_field.pyc in _pari_integral_basis(self, v) 3827 f = self.pari_polynomial() 3828 if len(v) == 0: -> 3829 B = f.nfbasis(1 if self._assume_disc_small else 0) 3830 else: 3831 m = self._pari_disc_factorization_matrix(v) /home/jack/Tools/sage-4.6.2-linux-64bit-ubuntu_10.04.1_lts-x86_64- Linux/local/lib/python2.6/site-packages/sage/libs/pari/gen.so in sage.libs.pari.gen._pari_trap (sage/libs/pari/gen.c:46023)() PariError: (5) sage: -- 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-support URL: http://www.sagemath.org
