Elements of Arithmetic Subgroups¶
- class sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement¶
Bases:
sage.structure.element.MultiplicativeGroupElement
An element of the group \({\rm 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()) <type '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