Hyperelliptic curves over the rationals¶
- class sage.schemes.hyperelliptic_curves.hyperelliptic_rational_field.HyperellipticCurve_rational_field(PP, f, h=None, names=None, genus=None)[source]¶
Bases:
HyperellipticCurve_generic
,ProjectivePlaneCurve_field
- lseries(prec=53)[source]¶
Return the \(L\)-series of this hyperelliptic curve of genus 2.
EXAMPLES:
sage: x = polygen(QQ, 'x') sage: C = HyperellipticCurve(x^2+x, x^3+x^2+1) sage: C.lseries() PARI L-function associated to Hyperelliptic Curve over Rational Field defined by y^2 + (x^3 + x^2 + 1)*y = x^2 + x
>>> from sage.all import * >>> x = polygen(QQ, 'x') >>> C = HyperellipticCurve(x**Integer(2)+x, x**Integer(3)+x**Integer(2)+Integer(1)) >>> C.lseries() PARI L-function associated to Hyperelliptic Curve over Rational Field defined by y^2 + (x^3 + x^2 + 1)*y = x^2 + x
x = polygen(QQ, 'x') C = HyperellipticCurve(x^2+x, x^3+x^2+1) C.lseries()
- matrix_of_frobenius(p, prec=20)[source]¶
Compute the matrix of Frobenius on Monsky-Washnitzer cohomology using the \(p\)-adic field with precision
prec
.This function is essentially a wrapper function of
sage.schemes.hyperelliptic_curves.monsky_washnitzer.matrix_of_frobenius_hyperelliptic()
.INPUT:
p
– prime integer or pAdic ring / field; ifp
is an integer, constructs apAdicField
withp
to compute the matrix of Frobenius, otherwise uses the supplied pAdic ring or fieldprec
– (optional) ifp
is an prime integer, the \(p\)-adic precision of the coefficient ring constructed
EXAMPLES:
sage: K = pAdicField(5, prec=3) sage: R.<x> = QQ['x'] sage: H = HyperellipticCurve(x^5 - 2*x + 3) sage: H.matrix_of_frobenius(K) [ 4*5 + O(5^3) 5 + 2*5^2 + O(5^3) 2 + 3*5 + 2*5^2 + O(5^3) 2 + 5 + 5^2 + O(5^3)] [ 3*5 + 5^2 + O(5^3) 3*5 + O(5^3) 4*5 + O(5^3) 2 + 5^2 + O(5^3)] [ 4*5 + 4*5^2 + O(5^3) 3*5 + 2*5^2 + O(5^3) 5 + 3*5^2 + O(5^3) 2*5 + 2*5^2 + O(5^3)] [ 5^2 + O(5^3) 5 + 4*5^2 + O(5^3) 4*5 + 3*5^2 + O(5^3) 2*5 + O(5^3)]
>>> from sage.all import * >>> K = pAdicField(Integer(5), prec=Integer(3)) >>> R = QQ['x']; (x,) = R._first_ngens(1) >>> H = HyperellipticCurve(x**Integer(5) - Integer(2)*x + Integer(3)) >>> H.matrix_of_frobenius(K) [ 4*5 + O(5^3) 5 + 2*5^2 + O(5^3) 2 + 3*5 + 2*5^2 + O(5^3) 2 + 5 + 5^2 + O(5^3)] [ 3*5 + 5^2 + O(5^3) 3*5 + O(5^3) 4*5 + O(5^3) 2 + 5^2 + O(5^3)] [ 4*5 + 4*5^2 + O(5^3) 3*5 + 2*5^2 + O(5^3) 5 + 3*5^2 + O(5^3) 2*5 + 2*5^2 + O(5^3)] [ 5^2 + O(5^3) 5 + 4*5^2 + O(5^3) 4*5 + 3*5^2 + O(5^3) 2*5 + O(5^3)]
K = pAdicField(5, prec=3) R.<x> = QQ['x'] H = HyperellipticCurve(x^5 - 2*x + 3) H.matrix_of_frobenius(K)
You can also pass directly a prime \(p\) with to construct a pAdic field with precision
prec
:sage: H.matrix_of_frobenius(3, prec=2) [ O(3^2) 3 + O(3^2) O(3^2) O(3^2)] [ 3 + O(3^2) O(3^2) O(3^2) 2 + 3 + O(3^2)] [ 2*3 + O(3^2) O(3^2) O(3^2) 3^-1 + O(3)] [ O(3^2) O(3^2) 3 + O(3^2) O(3^2)]
>>> from sage.all import * >>> H.matrix_of_frobenius(Integer(3), prec=Integer(2)) [ O(3^2) 3 + O(3^2) O(3^2) O(3^2)] [ 3 + O(3^2) O(3^2) O(3^2) 2 + 3 + O(3^2)] [ 2*3 + O(3^2) O(3^2) O(3^2) 3^-1 + O(3)] [ O(3^2) O(3^2) 3 + O(3^2) O(3^2)]
H.matrix_of_frobenius(3, prec=2)