ainvs, [extra=None]) |
a1,
a2,
a3,
a4,
a6,
a_invariants,
ainvs,
b_invariants,
base_field,
base_ring,
c_invariants,
discriminant,
division_polynomial,
gens,
is_on_curve,
j_invariant,
latex,
quadratic_twist,
torsion_polynomial,
weierstrass_model
These methods are defined as follows:
) |
sage: E = EllipticCurve([1,2,3,4,6]) sage: E.a1() 1
) |
sage: E = EllipticCurve([1,2,3,4,6]) sage: E.a2() 2
) |
sage: E = EllipticCurve([1,2,3,4,6]) sage: E.a3() 3
) |
sage: E = EllipticCurve([1,2,3,4,6]) sage: E.a4() 4
) |
sage: E = EllipticCurve([1,2,3,4,6]) sage: E.a6() 6
) |
The a-invariants of this elliptic curve.
sage: E = EllipticCurve([1,2,3,4,5]) sage: E.a_invariants() [1, 2, 3, 4, 5] sage: E = EllipticCurve([0,1]) sage: E Elliptic Curve defined by y^2 = x^3 +1 over Rational Field sage: E.a_invariants() [0, 0, 0, 0, 1] sage: E = EllipticCurve([GF(7)(3),5]) sage: E.a_invariants() [0, 0, 0, 3, 5]
) |
The a-invariants of this elliptic curve.
sage: E = EllipticCurve([1,2,3,4,5]) sage: E.a_invariants() [1, 2, 3, 4, 5] sage: E = EllipticCurve([0,1]) sage: E Elliptic Curve defined by y^2 = x^3 +1 over Rational Field sage: E.a_invariants() [0, 0, 0, 0, 1] sage: E = EllipticCurve([GF(7)(3),5]) sage: E.a_invariants() [0, 0, 0, 3, 5]
) |
The b-invariants of this elliptic curve.
sage: E = EllipticCurve([0, -1, 1, -10, -20]) sage: E.b_invariants() (-4, -20, -79, -21) sage: E = EllipticCurve([-4,0]) sage: E.b_invariants() (0, -8, 0, -16)
ALGORITHM: These are simple functions of the a invariants.
AUTHOR: William Stein, 2005-04-25
) |
Returns the base ring of the elliptic curves.
sage: E = EllipticCurve([GF(49)(3),5]) sage: E.base_ring() Finite field of size 7^2 sage: E = EllipticCurve([1,1]) sage: E.base_ring() Rational Field
sage: E = EllipticCurve(ZZ, [3,5]) sage: E.base_ring() Integer Ring
) |
Returns the base ring of the elliptic curves.
sage: E = EllipticCurve([GF(49)(3),5]) sage: E.base_ring() Finite field of size 7^2 sage: E = EllipticCurve([1,1]) sage: E.base_ring() Rational Field
sage: E = EllipticCurve(ZZ, [3,5]) sage: E.base_ring() Integer Ring
) |
The c-invariants of this elliptic curve.
sage: E = EllipticCurve([0, -1, 1, -10, -20]) sage: E.c_invariants() (496, 20008) sage: E = EllipticCurve([-4,0]) sage: E.c_invariants() (192, 0)
ALGORITHM: These are simple functions of the b invariants.
AUTHOR: William Stein, 2005-04-25
) |
Returns the discriminant of this elliptic curve.
sage: E = EllipticCurve([0,0,1,-1,0]) sage: E.discriminant() 37 sage: E = EllipticCurve([0, -1, 1, -10, -20]) sage: E.discriminant() -161051
sage: E = EllipticCurve([GF(7)(2),1]) sage: E.discriminant() 1
n, [i=0]) |
Returns the n-th torsion polynomial (a.k.a., division polynomial).
INPUT: n -- non-negative integer i -- integer, either 0 (default) or 1. OUTPUT: Polynomial -- n-th torsion polynomial, which is a polynomial over the base field of the elliptic curve.
sage: E = EllipticCurve([0,0,1,-1,0]) sage: E.division_polynomial(1) 1 sage: E.division_polynomial(2) 4*x^3 - 4*x + 1 sage: E.division_polynomial(3) 3*x^4 - 6*x^2 + 3*x - 1
sage: E = EllipticCurve([0, -1, 1, -10, -20]) sage: E.torsion_polynomial(0) 0 sage: E.torsion_polynomial(1) 1 sage: E.torsion_polynomial(2) 4*x^3 - 4*x^2 - 40*x - 79 sage: E.torsion_polynomial(3) 3*x^4 - 4*x^3 - 60*x^2 - 237*x - 21 sage: E.torsion_polynomial(4) 8*x^9 - 24*x^8 - 464*x^7 - 2758*x^6 + 6636*x^5 + 34356*x^4 + 53510*x^3 + 99714*x^2 + 351024*x + 459859
sage: E = EllipticCurve([-4,0]) sage: E.torsion_polynomial(2) 4*x^3 - 16*x sage: E.torsion_polynomial(5) 5*x^12 - 248*x^10 - 1680*x^8 + 19200*x^6 - 32000*x^4 + 51200*x^2 + 4096 sage: E.torsion_polynomial(6) 12*x^19 - 1200*x^17 - 18688*x^15 + 422912*x^13 - 2283520*x^11 + 9134080*x^9 - 27066368*x^7 + 19136512*x^5 + 19660800*x^3 - 3145728*x
AUTHOR: David Kohel (kohel@maths.usyd.edu.au), 2005-04-25
) |
x, y) |
Returns True if the (x,y) is an affine point on this curve.
) |
Returns the j-invariant of this elliptic curve.
sage: E = EllipticCurve([0,0,1,-1,0]) sage: E.j_invariant() 110592/37 sage: E = EllipticCurve([0, -1, 1, -10, -20]) sage: E.j_invariant() -122023936/161051 sage: E = EllipticCurve([-4,0]) sage: E.j_invariant() 1728
sage: E = EllipticCurve([GF(7)(2),1]) sage: E.j_invariant() 1
) |
D) |
Return the quadratic twist of this curve by D.
n, [i=0]) |
Returns the n-th torsion polynomial (a.k.a., division polynomial).
INPUT: n -- non-negative integer i -- integer, either 0 (default) or 1. OUTPUT: Polynomial -- n-th torsion polynomial, which is a polynomial over the base field of the elliptic curve.
sage: E = EllipticCurve([0,0,1,-1,0]) sage: E.division_polynomial(1) 1 sage: E.division_polynomial(2) 4*x^3 - 4*x + 1 sage: E.division_polynomial(3) 3*x^4 - 6*x^2 + 3*x - 1
sage: E = EllipticCurve([0, -1, 1, -10, -20]) sage: E.torsion_polynomial(0) 0 sage: E.torsion_polynomial(1) 1 sage: E.torsion_polynomial(2) 4*x^3 - 4*x^2 - 40*x - 79 sage: E.torsion_polynomial(3) 3*x^4 - 4*x^3 - 60*x^2 - 237*x - 21 sage: E.torsion_polynomial(4) 8*x^9 - 24*x^8 - 464*x^7 - 2758*x^6 + 6636*x^5 + 34356*x^4 + 53510*x^3 + 99714*x^2 + 351024*x + 459859
sage: E = EllipticCurve([-4,0]) sage: E.torsion_polynomial(2) 4*x^3 - 16*x sage: E.torsion_polynomial(5) 5*x^12 - 248*x^10 - 1680*x^8 + 19200*x^6 - 32000*x^4 + 51200*x^2 + 4096 sage: E.torsion_polynomial(6) 12*x^19 - 1200*x^17 - 18688*x^15 + 422912*x^13 - 2283520*x^11 + 9134080*x^9 - 27066368*x^7 + 19136512*x^5 + 19660800*x^3 - 3145728*x
AUTHOR: David Kohel (kohel@maths.usyd.edu.au), 2005-04-25
) |
Return a model of the form
for this curve.
Instances of class EllipticCurve_generic also have the following special methods:
[x=Infinity], [y=Infinity]) |
Create a point on the elliptic curve, if possible. If a the point is not on the curve, an ArithmeticError exception is raised.
sage: E = EllipticCurve([0, 0, 1, -1, 0]) sage: P = E(0,0) sage: P (0, 0) sage: P.curve() Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field sage: E([0,0]) (0, 0) sage: E([1,0,0]) (1,0,0) sage: E(infinity) (1,0,0)
We create points on an elliptic curve over a prime finite field.
sage: E = EllipticCurve([GF(7)(0), 1]) sage: E([2,3]) (2, 3) sage: E([0,0]) Traceback (most recent call last): ... ArithmeticError: Point (0, 0) is not on curve.
We create a point on an elliptic curve over a number field.
sage: x = polygen(RationalField()) sage: K = NumberField(x**3 + x + 1); a = K.gen() sage: E = EllipticCurve([a,a]) sage: E Elliptic Curve defined by y^2 = x^3 + a*x + a over Number Field with defining polynomial x^3 + x + 1 sage: E = EllipticCurve([K(1),1]) sage: E Elliptic Curve defined by y^2 = x^3 + x +1 over Number Field with defining polynomial x^3 + x + 1 sage: P = E([a,0]) sage: P (a, 0) sage: P+P (1,0,0)
other) |
P) |
Returns True if and only if P defines is a point on the elliptic curve. P just has to be something that can be coerced to a point.
sage: E = EllipticCurve([0, 0, 1, -1, 0]) sage: (0,0) in E True sage: (1,3) in E False sage: E = EllipticCurve([GF(7)(0), 1]) sage: [0,0] in E False sage: [0,8] in E True sage: P = E(0,8) sage: P (0, 1) sage: P in E True
n) |
See About this document... for information on suggesting changes.