38.7 Rational point sets on a Jacobian

Module: sage.schemes.hyperelliptic_curves.jacobian_homset

Rational point sets on a Jacobian

sage: x = QQ['x'].0
sage: f = x^5 + x + 1
sage: C = HyperellipticCurve(f); C
Hyperelliptic Curve over Rational Field defined by y^2 = x^5 + x + 1
sage: C(QQ)
Set of Rational Points of Hyperelliptic Curve over Rational Field defined
by y^2 = x^5 + x + 1
sage: P = C([0,1,1])
sage: J = C.jacobian(); J
Jacobian of Hyperelliptic Curve over Rational Field defined by y^2 = x^5 +
x + 1
sage: Q = J(QQ)(P); Q
(x, y - 1)
sage: Q + Q
(x^2, y - 1/2*x - 1)
sage: Q*3
(x^2 - 1/64*x + 1/8, y + 255/512*x + 65/64)

Class: JacobianHomset_divisor_classes

class JacobianHomset_divisor_classes
JacobianHomset_divisor_classes( self, X, S)

Functions: base_extend,$ \,$ curve,$ \,$ value_ring

value_ring( self)

Returns S for a homset X(T) where T = Spec(S).

Special Functions: __call__,$ \,$ __init__,$ \,$ _cmp_,$ \,$ _point_morphism_class

__call__( self, P)

Returns a rational point P in the abstract Homset J(K), given:

0. A point P in J = Jac(C), returning P; 1. A point P on the curve C such that J = Jac(C), where C is an odd degree model, returning [P - oo]; 2. A pair of points (P, Q) on the curve C such that J = Jac(C), returning [P-Q]; 2. A list of polynomials (a,b) such that $ b^2 + h*b - f = 0 mod a$ , returning [(a(x),y-b(x))].

sage: P.<x> = PolynomialRing(QQ)
sage: f = x^5 - x + 1; h = x
sage: C = HyperellipticCurve(f,h,'u,v')
sage: P = C(0,1,1)
sage: J = C.jacobian()
sage: Q = J(QQ)(P)
sage: for i in range(6): i*Q
(1)
(u, v - 1)
(u^2, v + u - 1)
(u^2, v + 1)
(u, v + 1)
(1)

See About this document... for information on suggesting changes.