A class representing a list of coset representatives for in
. What we actually calculate is a list of elements of
of exact order
.
TESTS:
sage: L = sage.modular.modsym.g1list.G1list(18)
sage: loads(dumps(L)) == L
True
Compare self to other.
EXAMPLE:
sage: L1 = sage.modular.modsym.g1list.G1list(6)
sage: L2 = sage.modular.modsym.g1list.G1list(7)
sage: L1 < L2
True
sage: L1 == QQ
False
EXAMPLE:
sage: L = sage.modular.modsym.g1list.G1list(19); L[100] # indirect doctest
(5, 6)
EXAMPLE:
sage: L = sage.modular.modsym.g1list.G1list(6); L # indirect doctest
List of coset representatives for Gamma_1(6) in SL_2(Z)
Return the length of the underlying list.
EXAMPLE:
sage: L = sage.modular.modsym.g1list.G1list(24); len(L) # indirect doctest
384
String representation of self.
EXAMPLE:
sage: L = sage.modular.modsym.g1list.G1list(3); L.__repr__()
'List of coset representatives for Gamma_1(3) in SL_2(Z)'
Return a list of vectors representing the cosets. Do not change the returned list!
EXAMPLE:
sage: L = sage.modular.modsym.g1list.G1list(4); L.list()
[(0, 1), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3)]
Given a pair of integers, return the unique pair
such that the pair
appears in self.list() and
is equivalent to
. This is rather trivial, but is here for
consistency with the P1List class which is the equivalent for
(where the problem is rather harder).
This will only make sense if ; otherwise the
output will not be an element of self.
EXAMPLE:
sage: L = sage.modular.modsym.g1list.G1list(4); L.normalize(6, 1)
(2, 1)
sage: L = sage.modular.modsym.g1list.G1list(4); L.normalize(6, 2) # nonsense!
(2, 2)