Elliptic curves over \(p\)-adic fields¶
- class sage.schemes.elliptic_curves.ell_padic_field.EllipticCurve_padic_field(R, data, category=None)[source]¶
Bases:
EllipticCurve_field
,HyperellipticCurve_padic_field
Elliptic curve over a \(p\)-adic field.
EXAMPLES:
sage: Qp = pAdicField(17) sage: E = EllipticCurve(Qp,[2,3]); E Elliptic Curve defined by y^2 = x^3 + (2+O(17^20))*x + (3+O(17^20)) over 17-adic Field with capped relative precision 20 sage: E == loads(dumps(E)) True
>>> from sage.all import * >>> Qp = pAdicField(Integer(17)) >>> E = EllipticCurve(Qp,[Integer(2),Integer(3)]); E Elliptic Curve defined by y^2 = x^3 + (2+O(17^20))*x + (3+O(17^20)) over 17-adic Field with capped relative precision 20 >>> E == loads(dumps(E)) True
Qp = pAdicField(17) E = EllipticCurve(Qp,[2,3]); E E == loads(dumps(E))
- frobenius(P=None)[source]¶
Return the Frobenius as a function on the group of points of this elliptic curve.
EXAMPLES:
sage: Qp = pAdicField(13) sage: E = EllipticCurve(Qp,[1,1]) sage: type(E.frobenius()) <... 'function'> sage: point = E(0,1) sage: E.frobenius(point) (0 : 1 + O(13^20) : 1 + O(13^20))
>>> from sage.all import * >>> Qp = pAdicField(Integer(13)) >>> E = EllipticCurve(Qp,[Integer(1),Integer(1)]) >>> type(E.frobenius()) <... 'function'> >>> point = E(Integer(0),Integer(1)) >>> E.frobenius(point) (0 : 1 + O(13^20) : 1 + O(13^20))
Qp = pAdicField(13) E = EllipticCurve(Qp,[1,1]) type(E.frobenius()) point = E(0,1) E.frobenius(point)
Check that Issue #29709 is fixed:
sage: Qp = pAdicField(13) sage: E = EllipticCurve(Qp,[0,0,1,0,1]) sage: E.frobenius(E(1,1)) Traceback (most recent call last): ... NotImplementedError: Curve must be in weierstrass normal form. sage: E = EllipticCurve(Qp,[0,1,0,0,1]) sage: E.frobenius(E(0,1)) (0 : 1 + O(13^20) : 1 + O(13^20))
>>> from sage.all import * >>> Qp = pAdicField(Integer(13)) >>> E = EllipticCurve(Qp,[Integer(0),Integer(0),Integer(1),Integer(0),Integer(1)]) >>> E.frobenius(E(Integer(1),Integer(1))) Traceback (most recent call last): ... NotImplementedError: Curve must be in weierstrass normal form. >>> E = EllipticCurve(Qp,[Integer(0),Integer(1),Integer(0),Integer(0),Integer(1)]) >>> E.frobenius(E(Integer(0),Integer(1))) (0 : 1 + O(13^20) : 1 + O(13^20))
Qp = pAdicField(13) E = EllipticCurve(Qp,[0,0,1,0,1]) E.frobenius(E(1,1)) E = EllipticCurve(Qp,[0,1,0,0,1]) E.frobenius(E(0,1))