The module schemes.hypersurfaces.plane_curves.elliptic.constructor defines the following methods:
x, [y=None]) |
There are several ways to construct elliptic curves:
- EllipticCurve([a1,a2,a3,a4,a6]): Elliptic curve with given a-invariants. The invariants are coerced into a the parent of the first element. If all are integers, they are coerced into the rational numbers.
- EllipticCurve([a4,a6]): Same as above, but a1=a2=a3=0.
- EllipticCurve(label): Returns the elliptic curve over Q from the Cremoa database with the given label. The label is a string, such as"11A" or "37B2".
- EllipticCurve(R, [a1,a2,a3,a4,a6]): Create the elliptic curve over R with given a-invariants. Here R can be an arbitrary ring. Note that addition need not be defined.
- EllipticCurve(j): Return an elliptic curve with j-invariant j. (Some mild hypothesis on char of base ring.)
We illustrate creating elliptic curves.
sage: EllipticCurve([0,0,1,-1,0]) Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field
sage: EllipticCurve([GF(5)(0),0,1,-1,0]) Elliptic Curve defined by y^2 + y = x^3 + 4*x over Finite field of size 5
Alternatively, one can create the curve over the finite field as follows:
sage: EllipticCurve(GF(5), [0, 0,1,-1,0]) Elliptic Curve defined by y^2 + y = x^3 + 4*x over Finite field of size 5
sage: E = EllipticCurve(CC, [0,0,1,-1,0]) sage: E Elliptic Curve defined by y^2 + y = x^3 - 1.0000000000000000*x over Complex Field sage: E.j_invariant() 2988.9729729729734
sage: E = EllipticCurve(ZZ, [0, 0,1,-1,0]) sage: E Elliptic Curve defined by y^2 + y = x^3 - x over Integer Ring
Of course, arithmetic on elliptic curves over Z need not be defined:
sage: P = E([0,0]) sage: P + P + P + P (2, -3) sage: P + P + P + P + P Traceback (most recent call last): ... ArithmeticError: Point (1/4, -5/8) is not on curve.
c4, c6) |
Return an elliptic curve with given
and
invariants.
sage: E = EllipticCurve_from_c4c6(17, -2005) sage: E Elliptic Curve defined by y^2 = x^3 - 17/48*x + 2005/864 over Rational Field sage: E.c_invariants() (17, -2005)
See About this document... for information on suggesting changes.