The classical representation#

Analytic theta null point and theta point.

AUTHORS:

  • Anna Somoza (2021-22): initial implementation

class thetAV.analytic_theta_point.AnalyticThetaPoint(thc, v)#

Bases: object

Components: - level, // an integer - coord, // a ThetaStructure of level 2 and g = 2*g

Todo

Refactor class

  • Add examples to all class functions

  • Add _repr_ to the classes and modify the examples accordingly

  • Field of definition

classmethod from_divisor(th, D)#

Given a divisor in Mumford coordinates (u, v), compute the corresponding theta point.

classmethod from_algebraic(th, thc=None)#

Let th be a theta point given by algebraic coordinates (i.e. AbelianVarietyPoint, KummerVarietyPoint). Compute the corresponding theta null point in analytic coordinates (i.e. ThetaNull_Analytic).

abelian_variety()#

Return the thetanullpoint associated to this theta point.

level()#

Return the level of the thetanullpoint, 2 or 4.

to_algebraic(A=None, **kwargs)#

Compute the algebraic theta point corresponding to an analytic theta point.

INPUT:

  • g- the dimension of the ab. variety? #Maybe it should be a variable in self?

OUTPUT:

The corresponding theta point in algebraic coordinates (see AbelianVarietyPoint, KummerVarietyPoint)

add_twotorsion_point(eta)#

Add the two torsion points corresponding to the characteristic eta to self.

EXAMPLES

sage: from thetAV import KummerVariety
sage: from thetAV.eta_maps import eta
sage: g = 2; A = KummerVariety(GF(331), 2, [328 , 213 , 75 , 1])
sage: P = A([255 , 89 , 30 , 1])
sage: th = A.with_theta_basis('F(2,2)^2')
sage: thp = th(P)
sage: thp.add_twotorsion_point(eta(g, 2))._coords #FIXME change when _repr_ is done.
(163, 328, 50, 185, 96, 217, 63, 183, 53, 307, 229, 76, 56, 118, 48, 199)
class thetAV.analytic_theta_point.AnalyticThetaNullPoint(R, l, g, v, curve=None, phi=None, wp=None, rac=None)#

Bases: object

Class for analytic theta null points.

For level 2, the basis used is F(2,2)^2. For level 4, the basis used is F(2,2).

See Section 3.1.2 in [Coss] for the definition of the notation.

level()#

Return the level of the thetanullpoint, 2 or 4.

dimension()#

Return the level of the thetanullpoint, 2 or 4.

_idx_to_char(x)#

Return the characteristic in D that corresponds to a given integer index.

static _char_to_idx(*x)#

Return the integer index that corresponds to a given characteristic in D.

point(P, **kwds)#

Create a point.

INPUT:

  • v – anything that defines a point

  • check – boolean (optional, default: False); whether to check the defining data for consistency

OUTPUT:

A point of the scheme.

_point#

alias of thetAV.analytic_theta_point.AnalyticThetaPoint

to_algebraic()#

Compute the algebraic theta null point corresponding to an analytic theta null point.

INPUT:

OUTPUT:

The corresponding theta null point in algebraic coordinates (see AbelianVariety_ThetaStructure, KummerVariety)

curve(phi=False)#

Hyperelliptic curve corresponding to this analytic theta null point.

_weierstrass_points()#

x-coordinates of the Weierstrass points of the corresponding curve

_root()#

Chosen square root of the difference between the x-coordinates of the first two Weierstrass points (a[0] - a[1]).