Module: sage.schemes.elliptic_curves.ell_finite_field
Class: EllipticCurve_finite_field
self, x, [y=None]) |
Functions: abelian_group,
cardinality,
points,
x_pari_
self) |
Returns the abelian group structure of the group of points on this elliptic curve.
OUTPUT: - an abelian group - tuple of images of each of the generators of the abelian group as points on this curve
self, [algorithm=False], [early_abort=heuristic]) |
Return the number of points on this elliptic curve over this finite field.
Note: If the cardinality of the base field is not prime, this function currently uses a very naive enumeration of all points.
INPUT: algorithm -- string (default: 'heuristic') 'heuristic' -- use a heuristic to choose between bsgs and sea. 'bsgs' -- use the baby step giant step method as implemented in PARI via the C-library function ellap. 'sea' -- use sea.gp as implemented in PARI by Christophe Doche and Sylvain Duquesne. 'all' -- compute cardinality with both bsgs and sea and return result if they agree or raise a RuntimeError if they do not. early_abort -- bool (default: False); this is used only by sea. if True, stop early if a small factor of the order is found. OUTPUT: an integer
Note: 'sea' doesn't work in Windows XP under Cygwin (as of 2005-12-06).
The cardinality is not cached.
sage: EllipticCurve(GF(4),[1,2,3,4,5]).cardinality() 8 sage: EllipticCurve(GF(9),[1,2,3,4,5]).cardinality() 16 sage: EllipticCurve(GF(10007),[1,2,3,4,5]).cardinality() 10076 sage: EllipticCurve(GF(10007),[1,2,3,4,5]).cardinality(algorithm='sea') 10076 sage: EllipticCurve(GF(10007),[1,2,3,4,5]).cardinality(algorithm='bsgs') 10076 sage: EllipticCurve(GF(next_prime(10**20)),[1,2,3,4,5]).cardinality(algorithm='sea') 100000000011093199520
self) |
All the points on this elliptic curve.
TODO: currently VERY VERY stupid implementation
Special Functions: __getitem__
See About this document... for information on suggesting changes.