# Elements of arithmetic subgroups#

class sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement#

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: x = polygen(ZZ, 'x')
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