Auxiliary functions
Abelian variety with theta structure
Additional tools.
AUTHORS:
Anna Somoza (2020-22): initial implementation
- avisogenies_sage.tools.rangeS(n, S)
- avisogenies_sage.tools.reduce_sym(x)
Returns the lexicographic minimum among x and -x for x an element in Zmod(n)g.
EXAMPLES:
sage: D = Zmod(10)^4 sage: el = D([6, 6, 6, 3]) sage: from avisogenies_sage.tools import reduce_sym sage: reduce_sym(el) (4, 4, 4, 7)
- avisogenies_sage.tools.reduce_twotorsion(x)
Returns elements y in Zmod(2n)g, t Zmod(2)g such that x = y + t and y is the lexicographic minimum of the elements in the class of x in Zmod(2n)g / Zmod(2)g with the usual inclusion of Zmod(2) into Zmod(2n).
EXAMPLES:
sage: D = Zmod(10)^4 sage: el = D([9, 2, 0, 8]) sage: from avisogenies_sage.tools import reduce_twotorsion sage: reduce_twotorsion(el) ((4, 2, 0, 3), (1, 0, 0, 1))
- avisogenies_sage.tools.reduce_symtwotorsion(x)
Returns elements y in Zmod(2n)g, t Zmod(2)g such that y is the lexicographic minimum among the elements in the classes of x and -x in Zmod(2n)g / Zmod(2)g with the usual inclusion of Zmod(2) into Zmod(2n), and t is such that y + t is either x or -x.
EXAMPLES:
sage: D = Zmod(10)^4 sage: el = D([8, 1, 5, 3]) sage: from avisogenies_sage.tools import reduce_symtwotorsion sage: reduce_symtwotorsion(el) ((2, 4, 0, 2), (0, 1, 1, 1))
- avisogenies_sage.tools.reduce_symcouple(x, y)
Returns the lexicographic minimum of the symmetrical reduction of two elements x, y in Zmod(n)g.
EXAMPLES:
sage: D = Zmod(10)^4 sage: el1 = D([4, 0, 5, 1]); el2 = D([9, 4, 6, 9]) sage: from avisogenies_sage.tools import reduce_symcouple sage: reduce_symcouple(el1, el2) ((1, 6, 4, 1), (4, 0, 5, 1))
- avisogenies_sage.tools.reduce_twotorsion_couple(x, y)
Given two elements x, y in Zmod(2n)g, returns elements r, s in Zmod(2n)g, t in Zmod(2)g, such that r is the lexicographic minimum among the elements in the classes of x and y in Zmod(2n)g / Zmod(2)g with the usual inclusion of Zmod(2) into Zmod(2n), s satisfies r + s = x + y and t is such that r + t is either x or y.
EXAMPLES:
sage: D = Zmod(10)^4 sage: el1 = D([8, 1, 8, 0]); el2 = D([5, 8, 4, 5]) sage: from avisogenies_sage.tools import reduce_twotorsion_couple sage: reduce_twotorsion_couple(el1, el2) ((0, 3, 4, 0), (3, 6, 8, 5), (1, 1, 0, 1))
- avisogenies_sage.tools.reduce_symtwotorsion_couple(x, y)
Given two elements x, y in Zmod(2n)g, returns elements r, s in Zmod(2n)g, t in Zmod(2)g, such that r is the lexicographic minimum among the elements in the classes of x, -x, y and -y in Zmod(2n)g / Zmod(2)g with the usual inclusion of Zmod(2) into Zmod(2n), s satisfies r + s = ± x ± y and t is such that r + t is either x, -x, y or -y.
Todo
Is s minimal in any sense among all the ones that satisfy that condition?
EXAMPLES:
sage: D = Zmod(10)^4 sage: el1 = D([0, 7, 9, 1]); el2 = D([3, 5, 8, 8]) sage: from avisogenies_sage.tools import reduce_symtwotorsion_couple sage: reduce_symtwotorsion_couple(el1, el2) ((0, 2, 4, 1), (3, 0, 3, 8), (0, 1, 1, 0))
- avisogenies_sage.tools.get_dual_quadruplet(x, y, u, v)
Todo
add minimal docstring. Twotorsion elements should be returned as elements in the twotorsion.
- avisogenies_sage.tools.eval_car(chi, t)
Todo
add minimal docstring.
- avisogenies_sage.tools.evaluate_formal_points(w)
Todo
add minimal docstring.
- avisogenies_sage.tools.idx(c, n)
Return the integer index that corresponds to a given characteristic in
D.
- avisogenies_sage.tools.create_conversions(n, g)
- avisogenies_sage.tools.create_indexing(n, g, twotorsion=True)
Hyperelliptic curves
Auxiliary functions to obtain different isomorphic models of hyperelliptic curves.
AUTHORS:
Anna Somoza (2021-22): initial implementation
- avisogenies_sage.aux_hyper.remove_h(phi)
- avisogenies_sage.aux_hyper.transformation(C, a, b, c, d, e, skip=None)
- avisogenies_sage.aux_hyper.rosenhain_model(phi)