Analytic theta null point

Analytic theta null point and theta point.

AUTHORS:

  • Anna Somoza (2021-22): initial implementation

class avisogenies_sage.analytic_theta_point.AnalyticThetaPoint(thc, v)

Bases: object

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

Todo

  • 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 avisogenies_sage import KummerVariety
sage: from avisogenies_sage.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)

Todo

Address FIXME.

class avisogenies_sage.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 avisogenies_sage.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)

Todo

Address FIXME.

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]).