# Base for Classical Matrix Groups¶

This module implements the base class for matrix groups that have various famous names, like the general linear group.

EXAMPLES:

sage: SL(2, ZZ)
Special Linear Group of degree 2 over Integer Ring
sage: G = SL(2,GF(3)); G
Special Linear Group of degree 2 over Finite Field of size 3
sage: G.is_finite()
True
sage: G.conjugacy_classes_representatives()
(
[1 0]  [0 2]  [0 1]  [2 0]  [0 2]  [0 1]  [0 2]
[0 1], [1 1], [2 1], [0 2], [1 2], [2 2], [1 0]
)
sage: G = SL(6,GF(5))
sage: G.gens()
(
[2 0 0 0 0 0]  [4 0 0 0 0 1]
[0 3 0 0 0 0]  [4 0 0 0 0 0]
[0 0 1 0 0 0]  [0 4 0 0 0 0]
[0 0 0 1 0 0]  [0 0 4 0 0 0]
[0 0 0 0 1 0]  [0 0 0 4 0 0]
[0 0 0 0 0 1], [0 0 0 0 4 0]
)

class sage.groups.matrix_gps.named_group.NamedMatrixGroup_gap(degree, base_ring, special, sage_name, latex_string, gap_command_string, category=None)

Base class for “named” matrix groups using LibGAP

INPUT:

• degree – integer. The degree (number of rows/columns of matrices).
• base_ring – ring. The base ring of the matrices.
• special – boolean. Whether the matrix group is special, that is, elements have determinant one.
• latex_string – string. The latex representation.
• gap_command_string – string. The GAP command to construct the matrix group.

EXAMPLES:

sage: G = GL(2, GF(3))
sage: from sage.groups.matrix_gps.named_group import NamedMatrixGroup_gap
sage: isinstance(G, NamedMatrixGroup_gap)
True

class sage.groups.matrix_gps.named_group.NamedMatrixGroup_generic(degree, base_ring, special, sage_name, latex_string, category=None)

Base class for “named” matrix groups

INPUT:

• degree – integer. The degree (number of rows/columns of matrices).
• base_ring – ring. The base ring of the matrices.
• special – boolean. Whether the matrix group is special, that is, elements have determinant one.
• latex_string – string. The latex representation.

EXAMPLES:

sage: G = GL(2, QQ)
sage: from sage.groups.matrix_gps.named_group import NamedMatrixGroup_generic
sage: isinstance(G, NamedMatrixGroup_generic)
True

sage.groups.matrix_gps.named_group.normalize_args_vectorspace(*args, **kwds)

Normalize the arguments that relate to a vector space.

INPUT:

Something that defines an affine space. For example

• An affine space itself:
• A – affine space
• A vector space:
• V – a vector space
• Degree and base ring:
• degree – integer. The degree of the affine group, that is, the dimension of the affine space the group is acting on.
• ring – a ring or an integer. The base ring of the affine space. If an integer is given, it must be a prime power and the corresponding finite field is constructed.
• var='a' – optional keyword argument to specify the finite field generator name in the case where ring is a prime power.

OUTPUT:

A pair (degree, ring).