# Jacobian of a Hyperelliptic curve of Genus 2¶

class sage.schemes.hyperelliptic_curves.jacobian_g2.HyperellipticJacobian_g2(C)

TESTS:

sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian_generic
sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
sage: C = Curve(x^3 + y^3 + z^3)
sage: J = Jacobian_generic(C); J
Jacobian of Projective Curve over Rational Field defined by x^3 + y^3 + z^3
sage: type(J)
<class 'sage.schemes.jacobians.abstract_jacobian.Jacobian_generic_with_category'>

Note: this is an abstract parent, so we skip element tests:

sage: TestSuite(J).run(skip =["_test_an_element",                                          "_test_elements",                                          "_test_elements_eq_reflexive",                                          "_test_elements_eq_symmetric",                                          "_test_elements_eq_transitive",                                          "_test_elements_neq",                                          "_test_some_elements"])
sage: Jacobian_generic(ZZ)
Traceback (most recent call last):
...
TypeError: Argument (=Integer Ring) must be a scheme.
sage: Jacobian_generic(P2)
Traceback (most recent call last):
...
ValueError: C (=Projective Space of dimension 2 over Rational Field) must have dimension 1.
sage: P2.<x, y, z> = ProjectiveSpace(Zmod(6), 2)
sage: C = Curve(x + y + z)
sage: Jacobian_generic(C)
Traceback (most recent call last):
...
TypeError: C (=Projective Curve over Ring of integers modulo 6 defined by x + y + z) must be defined over a field.
kummer_surface()

x.__init__(...) initializes x; see help(type(x)) for signature

#### Previous topic

Mestre’s algorithm

#### Next topic

Jacobian of a General Hyperelliptic Curve