home *** CD-ROM | disk | FTP | other *** search
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%
- %A matring.tex GAP documentation Martin Schoenert
- %%
- %A @(#)$Id: matring.tex,v 3.4 1993/02/19 10:48:42 gap Exp $
- %%
- %Y Copyright 1990-1992, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
- %%
- %% This file describes matrix rings and their implementation.
- %%
- %H $Log: matring.tex,v $
- %H Revision 3.4 1993/02/19 10:48:42 gap
- %H adjustments in line length and spelling
- %H
- %H Revision 3.3 1993/02/12 16:42:07 felsch
- %H examples adjusted to line length 72
- %H
- %H Revision 3.2 1993/02/05 10:20:35 felsch
- %H example fixed
- %H
- %H Revision 3.1 1992/04/06 00:13:41 martin
- %H initial revision under RCS
- %H
- %%
- \Chapter{Matrix Rings}
-
- A *matrix ring* is a ring of square matrices (see chapter "Matrices").
- In {\GAP} you can define matrix rings of matrices over each of the fields
- that {\GAP} supports, i.e., the rationals, cyclotomic extensions of the
- rationals, and finite fields (see chapters "Rationals", "Cyclotomics",
- and "Finite Fields").
-
- You define a matrix ring in {\GAP} by calling 'Ring' (see "Ring") passing
- the generating matrices as arguments.
-
- | gap> m1 := [ [ Z(3)^0, Z(3)^0, Z(3) ],
- > [ Z(3), 0*Z(3), Z(3) ],
- > [ 0*Z(3), Z(3), 0*Z(3) ] ];;
- gap> m2 := [ [ Z(3), Z(3), Z(3)^0 ],
- > [ Z(3), 0*Z(3), Z(3) ],
- > [ Z(3)^0, 0*Z(3), Z(3) ] ];;
- gap> m := Ring( m1, m2 );
- Ring( [ [ Z(3)^0, Z(3)^0, Z(3) ], [ Z(3), 0*Z(3), Z(3) ],
- [ 0*Z(3), Z(3), 0*Z(3) ] ],
- [ [ Z(3), Z(3), Z(3)^0 ], [ Z(3), 0*Z(3), Z(3) ],
- [ Z(3)^0, 0*Z(3), Z(3) ] ] )
- gap> Size( m );
- 2187 |
-
- However, currently {\GAP} can only compute with finite matrix rings with
- a multiplicative neutral element (a *one*). Also computations with large
- matrix rings are not done very efficiently. We hope to improve this
- situation in the future, but currently you should be careful not to try
- too large matrix rings.
-
- Because matrix rings are just a special case of domains all the set
- theoretic functions such as 'Size' and 'Intersection' are applicable to
- matrix rings (see chapter "Domains" and "Set Functions for Matrix
- Rings").
-
- Also matrix rings are of course rings, so all ring functions such as
- 'Units' and 'IsIntegralRing' are applicable to matrix rings (see chapter
- "Rings" and "Ring Functions for Matrix Rings").
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{Set Functions for Matrix Rings}
-
- All set theoretic functions described in chapter "Domains" use their
- default function for matrix rings currently. This means, for example,
- that the size of a matrix ring is computed by computing the set of all
- elements of the matrix ring with an orbit-like algorithm. Thus you
- should not try to work with too large matrix rings.
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{Ring Functions for Matrix Rings}
- \index{IsUnit!for matrix rings}
-
- As already mentioned in the introduction of this chapter matrix rings are
- after all rings. All ring functions such as 'Units' and 'IsIntegralRing'
- are thus applicable to matrix rings. This section describes how these
- functions are implemented for matrix rings. Functions not mentioned here
- inherit the default group methods described in the respective sections.
-
- \vspace{5mm}
- 'IsUnit( <R>, <m> )'
-
- A matrix is a unit in a matrix ring if its rank is maximal (see
- "RankMat").
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%
- %E Emacs . . . . . . . . . . . . . . . . . . . . . local Emacs variables
- %%
- %% Local Variables:
- %% mode: outline
- %% outline-regexp: "\\\\Chapter\\|\\\\Section"
- %% fill-column: 73
- %% eval: (hide-body)
- %% End:
- %%
-
-
-
-