Jacobians of curves#
This module defines the base class of Jacobians as an abstract scheme.
AUTHORS:
William Stein (2005)
- sage.schemes.jacobians.abstract_jacobian.Jacobian(C)#
EXAMPLES:
sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2) sage: C = Curve(x^3 + y^3 + z^3) sage: Jacobian(C) Jacobian of Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
from sage.schemes.jacobians.abstract_jacobian import Jacobian P2.<x, y, z> = ProjectiveSpace(QQ, 2) C = Curve(x^3 + y^3 + z^3) Jacobian(C)
- class sage.schemes.jacobians.abstract_jacobian.Jacobian_generic(C)#
Bases:
Scheme
Base class for Jacobians of projective curves.
The input must be a projective curve over a field.
EXAMPLES:
sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2) sage: C = Curve(x^3 + y^3 + z^3) sage: J = Jacobian(C); J Jacobian of Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
from sage.schemes.jacobians.abstract_jacobian import Jacobian P2.<x, y, z> = ProjectiveSpace(QQ, 2) C = Curve(x^3 + y^3 + z^3) J = Jacobian(C); J
- base_extend(R)#
Return the natural extension of
self
over .INPUT:
R
– a field. The new base field.
OUTPUT: The Jacobian over the ring
.EXAMPLES:
sage: R.<x> = QQ['x'] sage: H = HyperellipticCurve(x^3 - 10*x + 9) sage: Jac = H.jacobian(); Jac Jacobian of Hyperelliptic Curve over Rational Field defined by y^2 = x^3 - 10*x + 9 sage: F.<a> = QQ.extension(x^2 + 1) # needs sage.rings.number_field sage: Jac.base_extend(F) # needs sage.rings.number_field Jacobian of Hyperelliptic Curve over Number Field in a with defining polynomial x^2 + 1 defined by y^2 = x^3 - 10*x + 9
R.<x> = QQ['x'] H = HyperellipticCurve(x^3 - 10*x + 9) Jac = H.jacobian(); Jac F.<a> = QQ.extension(x^2 + 1) # needs sage.rings.number_field Jac.base_extend(F) # needs sage.rings.number_field
- change_ring(R)#
Return the Jacobian over the ring
.INPUT:
R
– a field. The new base ring.
OUTPUT: The Jacobian over the ring
.EXAMPLES:
sage: R.<x> = QQ['x'] sage: H = HyperellipticCurve(x^3 - 10*x + 9) sage: Jac = H.jacobian(); Jac Jacobian of Hyperelliptic Curve over Rational Field defined by y^2 = x^3 - 10*x + 9 sage: Jac.change_ring(RDF) Jacobian of Hyperelliptic Curve over Real Double Field defined by y^2 = x^3 - 10.0*x + 9.0
R.<x> = QQ['x'] H = HyperellipticCurve(x^3 - 10*x + 9) Jac = H.jacobian(); Jac Jac.change_ring(RDF)
- curve()#
Return the curve of which
self
is the Jacobian.EXAMPLES:
sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2) sage: J = Jacobian(Curve(x^3 + y^3 + z^3)) sage: J.curve() Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
from sage.schemes.jacobians.abstract_jacobian import Jacobian P2.<x, y, z> = ProjectiveSpace(QQ, 2) J = Jacobian(Curve(x^3 + y^3 + z^3)) J.curve()
- sage.schemes.jacobians.abstract_jacobian.is_Jacobian(J)#
Return True if
is of type Jacobian_generic.EXAMPLES:
sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian, is_Jacobian sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2) sage: C = Curve(x^3 + y^3 + z^3) sage: J = Jacobian(C) sage: is_Jacobian(J) True
from sage.schemes.jacobians.abstract_jacobian import Jacobian, is_Jacobian P2.<x, y, z> = ProjectiveSpace(QQ, 2) C = Curve(x^3 + y^3 + z^3) J = Jacobian(C) is_Jacobian(J)
sage: E = EllipticCurve('37a1') sage: is_Jacobian(E) False
E = EllipticCurve('37a1') is_Jacobian(E)