Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagelib
Path: blob/master/sage/schemes/hyperelliptic_curves/jacobian_g2.py
4156 views
1
"""
2
Jacobian of a Hyperelliptic curve of Genus 2
3
"""
4
5
#*****************************************************************************
6
# Copyright (C) 2006 David Kohel <[email protected]>
7
# Distributed under the terms of the GNU General Public License (GPL)
8
# http://www.gnu.org/licenses/
9
#*****************************************************************************
10
11
import jacobian_generic
12
import kummer_surface
13
14
# The generic genus 2 curve in Weierstrass form:
15
#
16
# y^2 + (c0*x^3 + c2*x^2 + c4*x + c6)*y =
17
# a0*x^6 + a2*x^5 + a4*x^4 + a6*x^3 + a8*x^2 + a10*x + a12.
18
#
19
# Transforms to:
20
#
21
# y^2 = (4*a0 + c0^2)*x^6 + (4*a2 + 2*c0*c2)*x^5
22
# + (4*a4 + 2*c0*c4 + c2^2)*x^4 + (4*a6 + 2*c0*c6 + 2*c2*c4)*x^3
23
# + (4*a8 + 2*c2*c6 + c4^2)*x^2 + (4*a10 + 2*c4*c6)*x + 4*a12 + c6^2
24
25
class HyperellipticJacobian_g2(jacobian_generic.HyperellipticJacobian_generic):
26
def kummer_surface(self):
27
try:
28
return self._kummer_surface
29
except AttributeError:
30
return kummer_surface.KummerSurface(self)
31
32
33