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:
objectComponents: - 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:
objectClass 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 pointcheck– 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:
self- a theta null point given by analytic coordinates (seeAnalyticThetaNullPoint).
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]).