The hyperelliptic curve is embedded in a weighted projective space, with weights 1, g + 1, and 1, respectively on x, y and z. Therefore point triples satisfy the equivalence relation (x : y : z) = (μx : μg + 1 y : μz), and the points at infinity are then normalized to take the form (1 : y : 0).
Returns the point on a hyperelliptic curve C specified by the coordinates (x, y, z). The elt constructor takes the pointset of a hyperelliptic curve as an argument. If z is not specified it is assumed to be 1.
Given a point P on a hyperelliptic curve C1, such that C is a base extension of C1, this returns the corresponding point on the hyperelliptic curve C. The curve C can be, e.g., the reduction of C1 to finite characteristic (i.e. base extension to a finite field) or the tautological coercion to itself.
The indexed set of all rational points on the hyperelliptic curve C that have the value x as their x-coordinate. (Rational points are those with coordinates in the coefficient ring of C). Note that points at infinity are considered to have ∞ as their x-coordinate.
The points at infinity for the hyperelliptic curve C returned as an indexed set of points.
The function returns true if and only if the sequence S specifies a point on the hyperelliptic curve C, and if so, returns this point as the second value.
We look at the point at infinity on y2=x5 + 1.
> P<x> := PolynomialRing(Rationals()); > C := HyperellipticCurve(x^5+1); > PointsAtInfinity(C); {@ (1 : 0 : 0) @}There is only one, and to see that this really is a point on C it must be remembered that in Magma, all hyperelliptic curves are considered to live in weighted projective spaces:
> Ambient(C); Projective Space of dimension 2 Variables : $.1, $.2, $.3 Gradings : 1 3 1In fact, the point is nonsingular on C, as we now check. (It's worth remembering that all the functionality for curves, for instance IsNonSingular, applies to hyperelliptic curves as a special case.)
> pointAtInfinity := C![1,0,0]; // Entering the point by hand. > IsNonSingular(pointAtInfinity); true
Given a hyperelliptic curve C defined over a finite field, this returns a point chosen at random on the curve. If the set of all points on C has already been computed, this gives a truly random point, otherwise the ramification points have a slight advantage.
Returns true if and only if the two points P and Q on the same hyperelliptic curve have the same coordinates.
Returns false if and only if the two points P and Q on the same hyperelliptic curve have the same coordinates.
The i-th coordinate of the point P, for 1≤i≤3.
Given a point P on a hyperelliptic curve, this returns a 3-element sequence consisting of the coordinates of the point P.
Given a point P on a hyperelliptic curve, this returns the image of P under the hyperelliptic involution.
The number of points at infinity on the hyperelliptic curve C.
The points at infinity for the hyperelliptic curve C returned as an indexed set of points.
Given a hyperelliptic curve C defined over a finite field, this returns the number of rational points on C.If the base field is small or there is no other good alternative, a naive point counting technique is used. However, if they are applicable, the faster p-adic methods described in the #J section are employed (which actually yield the full zeta function of C). As for #J, the verbose flag JacHypCnt can be used to output information about the computation.
Bound: RngIntElt Default:
NPrimes: RngIntElt Default: 30
DenominatorBound: RngIntElt Default: Bound
For a hyperelliptic curve C defined over a finite field, the function returns an indexed set of all rational points on C. For a curve C over Q of the form y2 = f(x) with integral coefficients, it returns the set of points such that the naive height of the x-coordinate is less than Bound.For a curve C over a number field, looks for points using a sieve method, described in Appendix A of [Bru02]. The parameter NPrimes controls the number of primes which are used and DenominatorBound the size of the denominators used.
Returns true if and only if the points of the hyperelliptic curve C have been computed. This can especially be helpful when the curve is likely to have many points and when one does not wish to trigger the possibly expensive point computation.
Given a hyperelliptic curve C defined over a finite field, this function computes the zeta function of C. The zeta function is returned as an element of the function field in one variable over the integers.If the base field is small or there is no other good alternative, the method used is a naive point count on the curve over extensions of degree 1, ..., g of the base field. However, if they are applicable, the faster p-adic methods described in the #J section are employed. As for #J, the verbose flag JacHypCnt can be used to output information about the computation.
Given a hyperelliptic curve C defined over the rationals, this function computes the zeta function of the base extension of C to K. The curve C must have good reduction at the characteristic of K.
> P<x> := PolynomialRing(Rationals()); > C := HyperellipticCurve(x^6+x^2+1); > Points(C : Bound := 1); {@ (1 : -1 : 0), (1 : 1 : 0), (0 : -1 : 1), (0 : 1 : 1) @} > Points(C : Bound := 2); {@ (1 : -1 : 0), (1 : 1 : 0), (0 : -1 : 1), (0 : 1 : 1), (-1 : -9 : 2), (-1 : 9 : 2), (1 : -9 : 2), (1 : 9 : 2) @} > Points(C : Bound := 4); {@ (1 : -1 : 0), (1 : 1 : 0), (0 : -1 : 1), (0 : 1 : 1), (-1 : -9 : 2), (-1 : 9 : 2), (1 : -9 : 2), (1 : 9 : 2) @}
Check: BoolElt Default: true
Applies the Frobenius x - > x(#F) to P. If Check is true, it verifies that the curve of which P is a point is defined over the finite field F.[Next][Prev] [Right] [Left] [Up] [Index] [Root]