Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

""" 

Jacobian of a Hyperelliptic curve of Genus 2 

""" 

from __future__ import absolute_import 

 

#***************************************************************************** 

# Copyright (C) 2006 David Kohel <kohel@maths.usyd.edu> 

# Distributed under the terms of the GNU General Public License (GPL) 

# http://www.gnu.org/licenses/ 

#***************************************************************************** 

 

from . import jacobian_generic 

from . import kummer_surface 

 

# The generic genus 2 curve in Weierstrass form: 

# 

# y^2 + (c0*x^3 + c2*x^2 + c4*x + c6)*y = 

# a0*x^6 + a2*x^5 + a4*x^4 + a6*x^3 + a8*x^2 + a10*x + a12. 

# 

# Transforms to: 

# 

# y^2 = (4*a0 + c0^2)*x^6 + (4*a2 + 2*c0*c2)*x^5 

# + (4*a4 + 2*c0*c4 + c2^2)*x^4 + (4*a6 + 2*c0*c6 + 2*c2*c4)*x^3 

# + (4*a8 + 2*c2*c6 + c4^2)*x^2 + (4*a10 + 2*c4*c6)*x + 4*a12 + c6^2 

 

class HyperellipticJacobian_g2(jacobian_generic.HyperellipticJacobian_generic): 

def kummer_surface(self): 

try: 

return self._kummer_surface 

except AttributeError: 

return kummer_surface.KummerSurface(self)