Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: ellcard Section: elliptic_curves C-Name: ellcard Prototype: GDG Help: ellcard(E,{p}): given an elliptic curve E defined over a finite field Fq, return the order of the group E(Fq); for other fields of definition K, p must define a finite residue field, (p prime for K = Qp or Q; p a maximal ideal for K a number field), return the order of the (nonsingular) reduction of E. Doc: Let \kbd{E} be an \kbd{ell} structure as output by \kbd{ellinit}, attached to an elliptic curve $E/K$. If $K = \F_q$ is finite, return the order of the group $E(\F_q)$. \bprog ? E = ellinit([-3,1], 5); ellcard(E) %1 = 7 ? t = ffgen(3^5,'t); E = ellinit([t,t^2+1]); ellcard(E) %2 = 217 @eprog\noindent For other fields of definition and $p$ defining a finite residue field $\F_q$, return the order of the reduction of $E$: the argument $p$ is best left omitted if $K = \Q_\ell$ (else we must have $p = \ell$) and must be a prime number ($K = \Q$) or prime ideal ($K$ a general number field) with residue field $\F_q$ otherwise. The equation need not be minimal or even integral at $p$; of course, a minimal model will be more efficient. The function considers the group of nonsingular points of the reduction of a minimal model of the curve at $p$, so also makes sense when the curve has bad reduction. \bprog ? E = ellinit([-3,1]); ? factor(E.disc) %2 = [2 4] [3 4] ? ellcard(E, 5) \\ as above ! %3 = 7 ? ellcard(E, 2) \\ additive reduction %4 = 2 @eprog When the characteristic of the finite field is large, the availability of the \kbd{seadata} package will speed the computation. See also \tet{ellap} for the list of implemented algorithms. Variant: Also available is \fun{GEN}{ellcard}{GEN E, GEN p} where $p$ is not \kbd{NULL}.