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 # optional - sage.rings.finite_rings
Special Linear Group of degree 2 over Finite Field of size 3
sage: G.is_finite() # optional - sage.rings.finite_rings
True
sage: G.conjugacy_classes_representatives() # optional - sage.rings.finite_rings
(
[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)) # optional - sage.rings.finite_rings
sage: G.gens() # optional - sage.rings.finite_rings
(
[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_generic(degree, base_ring, special, sage_name, latex_string, category=None, invariant_form=None)#
Bases:
CachedRepresentation
,MatrixGroup_generic
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 matricesspecial
– boolean; whether the matrix group is special, that is, elements have determinant onesage_name
– string; the name of the grouplatex_string
– string; the latex representationcategory
– (optional) a subcategory ofsage.categories.groups.Groups
passed to the constructor ofsage.groups.matrix_gps.matrix_group.MatrixGroup_generic
invariant_form
– (optional) square-matrix of the given degree over the given base_ring describing a bilinear form to be kept invariant by the group
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_invariant_form(R, d, invariant_form)#
Normalize the input of a user defined invariant bilinear form for orthogonal, unitary and symplectic groups.
Further informations and examples can be found in the defining functions (
GU()
,SU()
,Sp()
, etc.) for unitary, symplectic groups, etc.INPUT:
R
– instance of the integral domain which should become thebase_ring
of the classical groupd
– integer giving the dimension of the module the classical group is operating oninvariant_form
– (optional) instances being accepted by the matrix-constructor that define a \(d \times d\) square matrix over R describing the bilinear form to be kept invariant by the classical group
OUTPUT:
None
ifinvariant_form
was not specified (orNone
). A matrix if the normalization was possible; otherwise an error is raised.AUTHORS:
Sebastian Oehms (2018-8) (see github issue #26028)
- 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 wherering
is a prime power.
OUTPUT:
A pair
(degree, ring)
.