|
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
The torsion or division polynomials are the polynomials
defining the subschemes of n-torsion points on the elliptic curve.
The homogeneous defining polynomial for the elliptic curve E.
DivisionPolynomial(E, n, g) : CrvEll, RngIntElt, RngUPolElt -> RngUPolElt, RngUPolElt, RngUPolElt
Given an elliptic curve E and an integer n, returns the
n-th division polynomial as a univariate polynomial over the
base ring of E. If n is even, this polynomial has multiplicity
two at the nonzero 2-torsion points of the curve.
The second return value is the n-th division polynomial, divided
by the univariate 2-torsion polynomial if n is even.
The third argument is the cofactor, equal to the univariate
2-torsion polynomial if n is even, and 1 otherwise.
If a polynomial is passed as a third argument, the division
polynomial is computed efficiently modulo that polynomial.
Returns the multivariate 2-torsion polynomial 2y + a1x + a3 of the
elliptic curve E, as a
bivariate polynomial.
Let E be an elliptic curve over a finite field K.
The following code fragment illustrates the relationship between
the roots in K of the n-th division polynomial for E,
and the x-coordinates of the points of n-torsion on E.
> K := GF(101);
> E := EllipticCurve([ K | 1, 1]);
> Roots(DivisionPolynomial(E, 5));
[ <86, 1>, <46, 1> ]
> [ P : P in RationalPoints(E) | 5*P eq E!0 ];
[ (86 : 34 : 1), (0 : 1 : 0), (46 : 25 : 1), (86 : 67 : 1), (46 : 76 : 1) ]
It is worth noting that even if the roots of the division polynomial lie
in the field, the corresponding points may not, lying instead in a quadratic
extension.
> Roots(DivisionPolynomial(E, 9));
[ <4, 1>, <17, 1>, <28, 1>, <34, 1>, <77, 1> ]
> Points(E, 4);
[]
> K2<w> := ext<K | 2>;
> Points(E(K2), 4);
[ (4 : 82*w + 57 : 1), (4 : 19*w + 44 : 1) ]
> Order($1[1]);
9
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|