### Navigation

- index
- modules |
- next |
- previous |
- Modular Symbols »

# List of coset representatives for \(\Gamma_1(N)\) in \({\rm SL}_2(\ZZ)\)

class `sage.modular.modsym.g1list.``G1list`(N)

  A class representing a list of coset representatives for \(\Gamma_1(N)\) in \({\rm SL}_2(\ZZ)\). What we actually calculate is a list of elements of \((\ZZ/N\ZZ)^2\) of exact order \(N\).

  TESTS:

      sage: L = sage.modular.modsym.g1list.G1list(18)
      sage: loads(dumps(L)) == L
      True

  `list`()

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

  `normalize`(u, v)

    Given a pair \((u,v)\) of integers, return the unique pair \((u', v')\) such that the pair \((u', v')\) appears in `self.list()` and \((u, v)\) is equivalent to \((u', v')\). This is rather trivial, but is here for consistency with the `P1List` class which is the equivalent for \(\Gamma_0\) (where the problem is rather harder).

    This will only make sense if \({\rm gcd}(u, v, N) = 1\); 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)

### Navigation

- index
- modules |
- next |
- previous |
- Modular Symbols »