Elements of Arithmetic Subgroups

class sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement

Bases: sage.structure.element.MultiplicativeGroupElement

An element of the group \(\SL_2(\ZZ)\), i.e. a 2x2 integer matrix of determinant 1.

a()

Return the upper left entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).a()
7
acton(z)

Return the result of the action of self on z as a fractional linear transformation.

EXAMPLES:

sage: G = Gamma0(15)
sage: g = G([1, 2, 15, 31])

An example of g acting on a symbolic variable:

sage: z = var('z')
sage: g.acton(z)
(z + 2)/(15*z + 31)

An example involving the Gaussian numbers:

sage: K.<i> = NumberField(x^2 + 1)
sage: g.acton(i)
1/1186*i + 77/1186

An example with complex numbers:

sage: C.<i> = ComplexField()
sage: g.acton(i)
0.0649241146711636 + 0.000843170320404721*I

An example with the cusp infinity:

sage: g.acton(infinity)
1/15

An example which maps a finite cusp to infinity:

sage: g.acton(-31/15)
+Infinity

Note that when acting on instances of cusps the return value is still a rational number or infinity (Note the presence of ‘+’, which does not show up for cusp instances):

sage: g.acton(Cusp(-31/15))
+Infinity
b()

Return the upper right entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).b()
1
c()

Return the lower left entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).c()
13
d()

Return the lower right entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).d()
2
det()

Return the determinant of self, which is always 1.

EXAMPLES:

sage: Gamma1(11)([12,11,-11,-10]).det()
1
determinant()

Return the determinant of self, which is always 1.

EXAMPLES:

sage: Gamma0(691)([1,0,691,1]).determinant()
1
matrix()

Return the matrix corresponding to self.

EXAMPLES:

sage: x = Gamma1(3)([4,5,3,4]) ; x
[4 5]
[3 4]
sage: x.matrix()
[4 5]
[3 4]
sage: type(x.matrix())
<class 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'>
multiplicative_order()

Return the multiplicative order of this element.

EXAMPLES:

sage: SL2Z.one().multiplicative_order()
1
sage: SL2Z([-1,0,0,-1]).multiplicative_order()
2
sage: s,t = SL2Z.gens()
sage: ((t^3*s*t^2) * s * ~(t^3*s*t^2)).multiplicative_order()
4
sage: (t^3 * s * t * t^-3).multiplicative_order()
6
sage: (t^3 * s * t * s * t^-2).multiplicative_order()
3
sage: SL2Z([2,1,1,1]).multiplicative_order()
+Infinity
sage: SL2Z([-2,1,1,-1]).multiplicative_order()
+Infinity