Supersingular Curves

IsSupersingular(E : parameters) : CrvEll -> BoolElt
    Proof: BoolElt                      Default: true
Given an elliptic curve E over a finite field, this function returns false if E is ordinary, otherwise proves that E is supersingular and returns true. If the parameter Proof is set to false then the effect of the function is the same as that of IsProbablySupersingular.
SupersingularPolynomial(p) : RngIntElt -> RngUPolElt
Given a prime p, returns the separable monic polynomial over Fp whose roots are precisely the j invariants of supersingular elliptic curves in characteristic p. The polynomial is computed by a formula; ignoring factors corresponding to j=0 or 1728, it is the partial power-series expansion of a certain hypergeometric function reduced mod p. For p of moderate size this is a very fast method.
IsOrdinary(E) : CrvEll -> BoolElt
Given an elliptic curve E over a finite field, this function returns true if the elliptic curve E is ordinary, otherwise false (i.e., if it is supersingular). Thus, this function is the logical negation of IsSupersingular.
IsProbablySupersingular(E) : CrvEll -> BoolElt
Given an elliptic curve E over a finite field, this function returns returns false if the elliptic curve E is proved to be ordinary, otherwise true. The algorithm is nondeterministic and repeated tests are independent.
V2.28, 13 July 2023