Path: blob/master/sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py
4145 views
"""1Hyperelliptic curves over the rationals2"""34#*****************************************************************************5# Copyright (C) 2006 David Kohel <[email protected]>6# Distributed under the terms of the GNU General Public License (GPL)7# http://www.gnu.org/licenses/8#*****************************************************************************910import hyperelliptic_generic11from sage.rings.all import is_pAdicField, is_pAdicRing, pAdicField1213class HyperellipticCurve_rational_field(hyperelliptic_generic.HyperellipticCurve_generic):1415def matrix_of_frobenius(self, p, prec=20):1617# BUG: should get this method from HyperellipticCurve_generic18def my_chage_ring(self, R):19from constructor import HyperellipticCurve20f, h = self._hyperelliptic_polynomials21y = self._printing_ring.gen()22x = self._printing_ring.base_ring().gen()23return HyperellipticCurve(f.change_ring(R), h, "%s,%s"%(x,y))2425import sage.schemes.elliptic_curves.monsky_washnitzer as monsky_washnitzer26if is_pAdicField(p) or is_pAdicRing(p):27K = p28else:29K = pAdicField(p, prec)30frob_p, forms = monsky_washnitzer.matrix_of_frobenius_hyperelliptic(my_chage_ring(self, K))31return frob_p32333435