24.7 Elliptic curves over finite fields

Module: sage.schemes.elliptic_curves.ell_finite_field

Class: EllipticCurve_finite_field

class EllipticCurve_finite_field
Elliptic curve over a finite field.
EllipticCurve_finite_field( self, x, [y=None])

Functions: abelian_group,$  $ cardinality,$  $ points,$  $ x_pari_

abelian_group( 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

cardinality( 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

points( 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.