Module: sage.groups.matrix_gps.matrix_group_element
GL, SL, Sp.
Author Log:
TODO: I don't like this at all. The matrix group element class should derive from matrix, so that all functionality of matrices (e.g., multiplication, charpoly, det) is automatically available. Certain functionality should return an element not in the group anymore, e.g., +.
Module-level Functions
x) |
Class: MatrixGroupElement
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G.random() sage: type(g) <class 'sage.groups.matrix_gps.matrix_group_element.MatrixGroupElement'>
self, g, parent, [check=True]) |
Create element of a matrix group.
INPUT: g -- defines element parent (optional) -- defines parent group (g must be in parent if specified, or a TypeError is raised). check -- bool (default: True), if False assumes g is a gap element in parent (if specified).
Functions: list,
order,
word_problem
self) |
Return list representation of this matrix.
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G.random() sage: g.list() [[1, 1], [0, 1]]
self) |
Return the order of this group element, which is the smallest
positive integer
for which
.
words, g, [display=True]) |
G and H are permutation groups, g in G, H is a subgroup of G generated by a list (words) of elements of G. If g is in H, return the expression for g as a word in the elements of (words).
This function does not solve the word problem in SAGE. Rather it pushes it over to GAP, which has optimized algorithms for the word problem. Essentially, this function is a wrapper for the GAP functions "EpimorphismFromFreeGroup" and "PreImagesRepresentative".
Special Functions: __add__,
__mul__,
__repr__,
__str__,
_gap_init_,
_gap_latex_,
_latex_
self, other) |
You can add and scalar multiply even though it is not a group operation.
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G([[1,1],[0,1]]) sage: h = G([[1,2],[0,1]]) sage: g+h [2 0] [0 2] sage: 2*g [2 2] [0 2] sage: MS = MatrixSpace(QQ,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G([[1,1],[0,1]]) sage: h = G([[1,2],[0,1]]) sage: g+h [2 3] [0 2] sage: 5/3*h [ 5/3 10/3] [ 0 5/3]
self, other) |
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G([[1,1],[0,1]]) sage: h = G([[1,1],[0,1]]) sage: g*h [1 2] [0 1]
self) |
Return string representation of this matrix.
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G([[1, 1], [0, 1]]) sage: g [1 1] [0 1]
self) |
Return string representation of this matrix (called by print).
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G([[1, 1], [0, 1]]) sage: print g [[1, 1], [0, 1]]
self) |
wraps GAP's LaTeX command (written by S. Kohl)
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G([[1, 1], [0, 1]]) sage: g._gap_latex_() '\left(\begin{array}{rr}% Z(3)^{0}\&Z(3)^{0}\\% 0*Z(3)\&Z(3)^{0}\\% \end{array}\right)% '
Type view(g._latex_()) to see the object in an xdvi window (assuming you have latex and xdvi installed).
self) |
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[1,0],[0,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: g = G([[1, 1], [0, 1]]) sage: g._latex_() '\left(\begin{array}{rr} 1\&1\\ 0\&1 \end{array}\right)'
Type view(g._latex_()) to see the object in an xdvi window (assuming you have latex and xdvi installed).
See About this document... for information on suggesting changes.