Function: hyperellordinate
Section: elliptic_curves
C-Name: hyperellordinate
Prototype: GG
Help: hyperellordinate(H,x): y-coordinates corresponding to x-coordinate x on
 hyperelliptic curve H.
 H can be given either by a squarefree polynomial P such that
 H:y^2=P(x) or by a vector [P,Q] such that H:y^2+Q(x)*y=P(x) and Q^2+4P is
 squarefree.
Doc:
 gives a $0$, $1$ or $2$-component vector containing
 the $y$-coordinates of the points of the curve $H$ having $x$ as
 $x$-coordinate. If $x=oo$, return the list of $y$ such that \kbd{[y]} (that is
 $[1:y:0]$ in weighted projective coordinates) is on the curve.
 $H$ can be given either by a squarefree polynomial $P$ such that
 $H$ has equation $y^{2} = P(x)$ or by a vector $[P,Q]$ such that
 $H$ has equation $y^{2} + Q(x)\*y = P(x)$ and $Q^{2}+4\*P$ is squarefree.
 \bprog
 ? hyperellordinate([x^3,1], 0)
 %1 = [0, -1]
 ? hyperellordinate(x^5+1, 2)
 %2 = []
 ? hyperellordinate([6*x^4,x^2], oo)
 %3 = [2,-3]
 ? hyperellisoncurve([6*x^4,x^2],[2])
 %4 = 1
 ? hyperellisoncurve([6*x^4,x^2],[1,-3,0])
 %5 = 1
 @eprog
