  
  [1X44 [33X[0;0YMatrix Groups[133X[101X
  
  [33X[0;0YMatrix groups are groups generated by invertible square matrices.[133X
  
  [33X[0;0YIn  the following example we temporarily increase the line length limit from
  its default value 80 to 83 in order to get a nicer output format.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xm1 := [ [ Z(3)^0, Z(3)^0,   Z(3) ],[127X[104X
    [4X[25X>[125X [27X           [   Z(3), 0*Z(3),   Z(3) ],[127X[104X
    [4X[25X>[125X [27X           [ 0*Z(3),   Z(3), 0*Z(3) ] ];;[127X[104X
    [4X[25Xgap>[125X [27Xm2 := [ [   Z(3),   Z(3), Z(3)^0 ],[127X[104X
    [4X[25X>[125X [27X           [   Z(3), 0*Z(3),   Z(3) ],[127X[104X
    [4X[25X>[125X [27X           [ Z(3)^0, 0*Z(3),   Z(3) ] ];;[127X[104X
    [4X[25Xgap>[125X [27Xm := Group( m1, m2 );[127X[104X
    [4X[28XGroup([128X[104X
    [4X[28X[ [128X[104X
    [4X[28X  [ [ Z(3)^0, Z(3)^0, Z(3) ], [ Z(3), 0*Z(3), Z(3) ], [128X[104X
    [4X[28X      [ 0*Z(3), Z(3), 0*Z(3) ] ], [128X[104X
    [4X[28X  [ [ Z(3), Z(3), Z(3)^0 ], [ Z(3), 0*Z(3), Z(3) ], [128X[104X
    [4X[28X      [ Z(3)^0, 0*Z(3), Z(3) ] ] ])[128X[104X
  [4X[32X[104X
  
  
  [1X44.1 [33X[0;0YIsMatrixGroup (Filter)[133X[101X
  
  [33X[0;0YFor  most  operations,  [5XGAP[105X  only provides methods for finite matrix groups.
  Many  calculations  in  finite  matrix  groups  are  done via so-called [21Xnice
  monomorphisms[121X  (see  Section  [14X40.5[114X)  that  represent  a  faithful  action on
  vectors.[133X
  
  [1X44.1-1 IsMatrixGroup[101X
  
  [29X[2XIsMatrixGroup[102X( [3Xgrp[103X ) [32X Category
  
  [33X[0;0YThe category of matrix groups.[133X
  
  
  [1X44.2 [33X[0;0YAttributes and Properties for Matrix Groups[133X[101X
  
  [1X44.2-1 DimensionOfMatrixGroup[101X
  
  [29X[2XDimensionOfMatrixGroup[102X( [3Xmat-grp[103X ) [32X attribute
  
  [33X[0;0YThe dimension of the matrix group.[133X
  
  [1X44.2-2 DefaultFieldOfMatrixGroup[101X
  
  [29X[2XDefaultFieldOfMatrixGroup[102X( [3Xmat-grp[103X ) [32X attribute
  
  [33X[0;0YIs a field containing all the matrix entries. It is not guaranteed to be the
  smallest field with this property.[133X
  
  [1X44.2-3 FieldOfMatrixGroup[101X
  
  [29X[2XFieldOfMatrixGroup[102X( [3Xmatgrp[103X ) [32X attribute
  
  [33X[0;0YThe  smallest field containing all the matrix entries of all elements of the
  matrix  group  [3Xmatgrp[103X.  As  the calculation of this can be hard, this should
  only   be   used   if   one   [13Xreally[113X   needs   the   smallest   field,   use
  [2XDefaultFieldOfMatrixGroup[102X ([14X44.2-2[114X) to get (for example) the characteristic.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XDimensionOfMatrixGroup(m);[127X[104X
    [4X[28X3[128X[104X
    [4X[25Xgap>[125X [27XDefaultFieldOfMatrixGroup(m);[127X[104X
    [4X[28XGF(3)[128X[104X
  [4X[32X[104X
  
  [1X44.2-4 TransposedMatrixGroup[101X
  
  [29X[2XTransposedMatrixGroup[102X( [3Xmatgrp[103X ) [32X attribute
  
  [33X[0;0Yreturns  the  transpose  of  the  matrix  group [3Xmatgrp[103X. The transpose of the
  transpose of [3Xmatgrp[103X is identical to [3Xmatgrp[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group( [[0,-1],[1,0]] );[127X[104X
    [4X[28XGroup([ [ [ 0, -1 ], [ 1, 0 ] ] ])[128X[104X
    [4X[25Xgap>[125X [27XT := TransposedMatrixGroup( G );[127X[104X
    [4X[28XGroup([ [ [ 0, 1 ], [ -1, 0 ] ] ])[128X[104X
    [4X[25Xgap>[125X [27XIsIdenticalObj( G, TransposedMatrixGroup( T ) );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X44.2-5 IsFFEMatrixGroup[101X
  
  [29X[2XIsFFEMatrixGroup[102X( [3XG[103X ) [32X Category
  
  [33X[0;0Ytests whether all matrices in [3XG[103X have finite field element entries.[133X
  
  
  [1X44.3 [33X[0;0YActions of Matrix Groups[133X[101X
  
  [33X[0;0YThe basic operations for groups are described in Chapter [14X41[114X, special actions
  for  [13Xmatrix[113X  groups mentioned there are [2XOnLines[102X ([14X41.2-12[114X), [2XOnRight[102X ([14X41.2-2[114X),
  and [2XOnSubspacesByCanonicalBasis[102X ([14X41.2-15[114X).[133X
  
  [33X[0;0YFor  subtleties  concerning  multiplication from the left or from the right,
  see [14X44.7[114X.[133X
  
  [1X44.3-1 ProjectiveActionOnFullSpace[101X
  
  [29X[2XProjectiveActionOnFullSpace[102X( [3XG[103X, [3XF[103X, [3Xn[103X ) [32X function
  
  [33X[0;0YLet  [3XG[103X  be  a  group of [3Xn[103X by [3Xn[103X matrices over a field contained in the finite
  field  [3XF[103X.  [2XProjectiveActionOnFullSpace[102X  returns  the image of the projective
  action of [3XG[103X on the full row space [22X[3XF[103X^[3Xn[103X[122X.[133X
  
  [1X44.3-2 ProjectiveActionHomomorphismMatrixGroup[101X
  
  [29X[2XProjectiveActionHomomorphismMatrixGroup[102X( [3XG[103X ) [32X function
  
  [33X[0;0Yreturns  an action homomorphism for a faithful projective action of [3XG[103X on the
  underlying  vector  space.  (Note: The action is not necessarily on the full
  space, if a smaller subset can be found on which the action is faithful.)[133X
  
  [1X44.3-3 BlowUpIsomorphism[101X
  
  [29X[2XBlowUpIsomorphism[102X( [3Xmatgrp[103X, [3XB[103X ) [32X function
  
  [33X[0;0YFor  a  matrix  group  [3Xmatgrp[103X and a basis [3XB[103X of a field extension [22XL / K[122X, say,
  such  that the entries of all matrices in [3Xmatgrp[103X lie in [22XL[122X, [2XBlowUpIsomorphism[102X
  returns  the  isomorphism  with source [3Xmatgrp[103X that is defined by mapping the
  matrix [22XA[122X to [10XBlownUpMat[110X[22X( A, [3XB[103X )[122X, see [2XBlownUpMat[102X ([14X24.13-3[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:= GL(2,4);;[127X[104X
    [4X[25Xgap>[125X [27XB:= CanonicalBasis( GF(4) );;  BasisVectors( B );[127X[104X
    [4X[28X[ Z(2)^0, Z(2^2) ][128X[104X
    [4X[25Xgap>[125X [27Xiso:= BlowUpIsomorphism( g, B );;[127X[104X
    [4X[25Xgap>[125X [27XDisplay( Image( iso, [ [ Z(4), Z(2) ], [ 0*Z(2), Z(4)^2 ] ] ) );[127X[104X
    [4X[28X . 1 1 .[128X[104X
    [4X[28X 1 1 . 1[128X[104X
    [4X[28X . . 1 1[128X[104X
    [4X[28X . . 1 .[128X[104X
    [4X[25Xgap>[125X [27Ximg:= Image( iso, g );[127X[104X
    [4X[28X<matrix group with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XIndex( GL(4,2), img );[127X[104X
    [4X[28X112[128X[104X
  [4X[32X[104X
  
  
  [1X44.4 [33X[0;0YGL and SL[133X[101X
  
  [33X[0;0Y(See also section [14X50.2[114X.)[133X
  
  [1X44.4-1 IsGeneralLinearGroup[101X
  
  [29X[2XIsGeneralLinearGroup[102X( [3Xgrp[103X ) [32X property
  [29X[2XIsGL[102X( [3Xgrp[103X ) [32X property
  
  [33X[0;0YThe  General  Linear  group  is  the group of all invertible matrices over a
  ring. This property tests, whether a group is isomorphic to a General Linear
  group.  (Note  that  currently  only a few trivial methods are available for
  this operation. We hope to improve this in the future.)[133X
  
  [1X44.4-2 IsNaturalGL[101X
  
  [29X[2XIsNaturalGL[102X( [3Xmatgrp[103X ) [32X property
  
  [33X[0;0YThis  property  tests, whether a matrix group is the General Linear group in
  the  right  dimension over the (smallest) ring which contains all entries of
  its elements. (Currently, only a trivial test that computes the order of the
  group is available.)[133X
  
  [1X44.4-3 IsSpecialLinearGroup[101X
  
  [29X[2XIsSpecialLinearGroup[102X( [3Xgrp[103X ) [32X property
  [29X[2XIsSL[102X( [3Xgrp[103X ) [32X property
  
  [33X[0;0YThe  Special  Linear  group  is  the group of all invertible matrices over a
  ring,  whose determinant is equal to 1. This property tests, whether a group
  is  isomorphic  to  a  Special Linear group. (Note that currently only a few
  trivial methods are available for this operation. We hope to improve this in
  the future.)[133X
  
  [1X44.4-4 IsNaturalSL[101X
  
  [29X[2XIsNaturalSL[102X( [3Xmatgrp[103X ) [32X property
  
  [33X[0;0YThis  property  tests, whether a matrix group is the Special Linear group in
  the  right  dimension over the (smallest) ring which contains all entries of
  its elements. (Currently, only a trivial test that computes the order of the
  group is available.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsNaturalGL(m);[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X44.4-5 IsSubgroupSL[101X
  
  [29X[2XIsSubgroupSL[102X( [3Xmatgrp[103X ) [32X property
  
  [33X[0;0YThis  property  tests,  whether  a matrix group is a subgroup of the Special
  Linear  group in the right dimension over the (smallest) ring which contains
  all entries of its elements.[133X
  
  
  [1X44.5 [33X[0;0YInvariant Forms[133X[101X
  
  [1X44.5-1 InvariantBilinearForm[101X
  
  [29X[2XInvariantBilinearForm[102X( [3Xmatgrp[103X ) [32X attribute
  
  [33X[0;0YThis  attribute describes a bilinear form that is invariant under the matrix
  group  [3Xmatgrp[103X. The form is given by a record with the component [10Xmatrix[110X which
  is a matrix [22XF[122X such that for every generator [22Xg[122X of [3Xmatgrp[103X the equation [22Xg ⋅ F ⋅
  g^tr = F[122X holds.[133X
  
  [1X44.5-2 IsFullSubgroupGLorSLRespectingBilinearForm[101X
  
  [29X[2XIsFullSubgroupGLorSLRespectingBilinearForm[102X( [3Xmatgrp[103X ) [32X property
  
  [33X[0;0YThis  property  tests, whether a matrix group [3Xmatgrp[103X is the full subgroup of
  GL  or  SL  (the  property  [2XIsSubgroupSL[102X  ([14X44.4-5[114X)  determines  which it is)
  respecting  the  form  stored as the value of [2XInvariantBilinearForm[102X ([14X44.5-1[114X)
  for [3Xmatgrp[103X.[133X
  
  [1X44.5-3 InvariantSesquilinearForm[101X
  
  [29X[2XInvariantSesquilinearForm[102X( [3Xmatgrp[103X ) [32X attribute
  
  [33X[0;0YThis  attribute  describes  a  sesquilinear form that is invariant under the
  matrix  group  [3Xmatgrp[103X  over  the field [22XF[122X with [22Xq^2[122X elements, say. The form is
  given by a record with the component [10Xmatrix[110X which is is a matrix [22XM[122X such that
  for  every  generator  [22Xg[122X  of [3Xmatgrp[103X the equation [22Xg ⋅ M ⋅ (g^tr)^f = M[122X holds,
  where [22Xf[122X is the automorphism of [22XF[122X that raises each element to its [22Xq[122X-th power.
  ([22Xf[122X can be obtained as a power of the [2XFrobeniusAutomorphism[102X ([14X59.4-1[114X) value of
  [22XF[122X.)[133X
  
  [1X44.5-4 IsFullSubgroupGLorSLRespectingSesquilinearForm[101X
  
  [29X[2XIsFullSubgroupGLorSLRespectingSesquilinearForm[102X( [3Xmatgrp[103X ) [32X property
  
  [33X[0;0YThis  property  tests, whether a matrix group [3Xmatgrp[103X is the full subgroup of
  GL  or  SL  (the  property  [2XIsSubgroupSL[102X  ([14X44.4-5[114X)  determines  which it is)
  respecting  the  form  stored  as  the  value  of  [2XInvariantSesquilinearForm[102X
  ([14X44.5-3[114X) for [3Xmatgrp[103X.[133X
  
  [1X44.5-5 InvariantQuadraticForm[101X
  
  [29X[2XInvariantQuadraticForm[102X( [3Xmatgrp[103X ) [32X attribute
  
  [33X[0;0YFor   a   matrix  group  [3Xmatgrp[103X,  [2XInvariantQuadraticForm[102X  returns  a  record
  containing  at  least  the  component  [10Xmatrix[110X whose value is a matrix [22XQ[122X. The
  quadratic form [22Xq[122X on the natural vector space [22XV[122X on which [3Xmatgrp[103X acts is given
  by [22Xq(v) = v Q v^tr[122X, and the invariance under [3Xmatgrp[103X is given by the equation
  [22Xq(v)  = q(v M)[122X for all [22Xv ∈ V[122X and [22XM[122X in [3Xmatgrp[103X. (Note that the invariance of [22Xq[122X
  does [13Xnot[113X imply that the matrix [22XQ[122X is invariant under [3Xmatgrp[103X.)[133X
  
  [33X[0;0Y[22Xq[122X   is   defined   relative  to  an  invariant  symmetric  bilinear  form  [22Xf[122X
  (see [2XInvariantBilinearForm[102X  ([14X44.5-1[114X)),  via  the equation [22Xq(λ x + μ y) = λ^2
  q(x) + λ μ f(x,y) + μ^2 q(y)[122X, see [CCN+85, Chapter 3.4]. If [22Xf[122X is represented
  by  the matrix [22XF[122X then this implies [22XF = Q + Q^tr[122X. In characteristic different
  from  [22X2[122X,  we  have [22Xq(x) = f(x,x)/2[122X, so [22XQ[122X can be chosen as the strictly upper
  triangular  part of [22XF[122X plus half of the diagonal part of [22XF[122X. In characteristic
  [22X2[122X,  [22XF[122X  does not determine [22XQ[122X but still [22XQ[122X can be chosen as an upper (or lower)
  triangular matrix.[133X
  
  [33X[0;0YWhenever the [2XInvariantQuadraticForm[102X value is set in a matrix group then also
  the [2XInvariantBilinearForm[102X ([14X44.5-1[114X) value can be accessed, and the two values
  are compatible in the above sense.[133X
  
  [1X44.5-6 IsFullSubgroupGLorSLRespectingQuadraticForm[101X
  
  [29X[2XIsFullSubgroupGLorSLRespectingQuadraticForm[102X( [3Xmatgrp[103X ) [32X property
  
  [33X[0;0YThis property tests, whether the matrix group [3Xmatgrp[103X is the full subgroup of
  GL  or  SL  (the  property  [2XIsSubgroupSL[102X  ([14X44.4-5[114X)  determines  which it is)
  respecting the [2XInvariantQuadraticForm[102X ([14X44.5-5[114X) value of [3Xmatgrp[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:= Sp( 2, 3 );;[127X[104X
    [4X[25Xgap>[125X [27Xm:= InvariantBilinearForm( g ).matrix;[127X[104X
    [4X[28X[ [ 0*Z(3), Z(3)^0 ], [ Z(3), 0*Z(3) ] ][128X[104X
    [4X[25Xgap>[125X [27X[ 0, 1 ] * m * [ 1, -1 ];           # evaluate the bilinear form[127X[104X
    [4X[28XZ(3)[128X[104X
    [4X[25Xgap>[125X [27XIsFullSubgroupGLorSLRespectingBilinearForm( g );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xg:= SU( 2, 4 );;[127X[104X
    [4X[25Xgap>[125X [27Xm:= InvariantSesquilinearForm( g ).matrix;[127X[104X
    [4X[28X[ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ][128X[104X
    [4X[25Xgap>[125X [27X[ 0, 1 ] * m * [ 1, 1 ];            # evaluate the bilinear form[127X[104X
    [4X[28XZ(2)^0[128X[104X
    [4X[25Xgap>[125X [27XIsFullSubgroupGLorSLRespectingSesquilinearForm( g );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xg:= GO( 1, 2, 3 );;[127X[104X
    [4X[25Xgap>[125X [27Xm:= InvariantBilinearForm( g ).matrix;[127X[104X
    [4X[28X[ [ 0*Z(3), Z(3)^0 ], [ Z(3)^0, 0*Z(3) ] ][128X[104X
    [4X[25Xgap>[125X [27X[ 0, 1 ] * m * [ 1, 1 ];            # evaluate the bilinear form[127X[104X
    [4X[28XZ(3)^0[128X[104X
    [4X[25Xgap>[125X [27Xq:= InvariantQuadraticForm( g ).matrix;[127X[104X
    [4X[28X[ [ 0*Z(3), Z(3)^0 ], [ 0*Z(3), 0*Z(3) ] ][128X[104X
    [4X[25Xgap>[125X [27X[ 0, 1 ] * q * [ 0, 1 ];            # evaluate the quadratic form[127X[104X
    [4X[28X0*Z(3)[128X[104X
    [4X[25Xgap>[125X [27XIsFullSubgroupGLorSLRespectingQuadraticForm( g );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X44.6 [33X[0;0YMatrix Groups in Characteristic 0[133X[101X
  
  [33X[0;0YMost  of  the  functions  described  in  this and the following section have
  implementations  which use functions from the [5XGAP[105X package [5XCarat[105X. If [5XCarat[105X is
  not installed or not compiled, no suitable methods are available.[133X
  
  [1X44.6-1 IsCyclotomicMatrixGroup[101X
  
  [29X[2XIsCyclotomicMatrixGroup[102X( [3XG[103X ) [32X Category
  
  [33X[0;0Ytests whether all matrices in [3XG[103X have cyclotomic entries.[133X
  
  [1X44.6-2 IsRationalMatrixGroup[101X
  
  [29X[2XIsRationalMatrixGroup[102X( [3XG[103X ) [32X property
  
  [33X[0;0Ytests whether all matrices in [3XG[103X have rational entries.[133X
  
  [1X44.6-3 IsIntegerMatrixGroup[101X
  
  [29X[2XIsIntegerMatrixGroup[102X( [3XG[103X ) [32X property
  
  [33X[0;0Ytests whether all matrices in [3XG[103X have integer entries.[133X
  
  [1X44.6-4 IsNaturalGLnZ[101X
  
  [29X[2XIsNaturalGLnZ[102X( [3XG[103X ) [32X property
  
  [33X[0;0Ytests  whether  [3XG[103X  is [22XGL_n(ℤ)[122X in its natural representation by [22Xn × n[122X integer
  matrices. (The dimension [22Xn[122X will be read off the generating matrices.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsNaturalGLnZ( GL( 2, Integers ) );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X44.6-5 IsNaturalSLnZ[101X
  
  [29X[2XIsNaturalSLnZ[102X( [3XG[103X ) [32X property
  
  [33X[0;0Ytests  whether  [3XG[103X  is [22XSL_n(ℤ)[122X in its natural representation by [22Xn × n[122X integer
  matrices. (The dimension [22Xn[122X will be read off the generating matrices.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsNaturalSLnZ( SL( 2, Integers ) );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X44.6-6 InvariantLattice[101X
  
  [29X[2XInvariantLattice[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yreturns a matrix [22XB[122X, whose rows form a basis of a [22Xℤ[122X-lattice that is invariant
  under  the rational matrix group [3XG[103X acting from the right. It returns [9Xfail[109X if
  the  group  is  not  unimodular.  The  columns  of  the  inverse of [22XB[122X span a
  [22Xℤ[122X-lattice invariant under [3XG[103X acting from the left.[133X
  
  [1X44.6-7 NormalizerInGLnZ[101X
  
  [29X[2XNormalizerInGLnZ[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yis  an attribute used to store the normalizer of [3XG[103X in [22XGL_n(ℤ)[122X, where [3XG[103X is an
  integer  matrix  group of dimension [3Xn[103X. This attribute is used by [10XNormalizer(
  GL( n, Integers ), G )[110X.[133X
  
  [1X44.6-8 CentralizerInGLnZ[101X
  
  [29X[2XCentralizerInGLnZ[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yis an attribute used to store the centralizer of [3XG[103X in [22XGL_n(ℤ)[122X, where [3XG[103X is an
  integer  matrix group of dimension [3Xn[103X. This attribute is used by [10XCentralizer(
  GL( n, Integers ), G )[110X.[133X
  
  [1X44.6-9 ZClassRepsQClass[101X
  
  [29X[2XZClassRepsQClass[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0YThe  conjugacy  class in [22XGL_n(ℚ)[122X of the finite integer matrix group [3XG[103X splits
  into  finitely  many  conjugacy  classes  in  [22XGL_n(ℤ)[122X. [10XZClassRepsQClass( [3XG[103X[10X )[110X
  returns representative groups for these.[133X
  
  [1X44.6-10 IsBravaisGroup[101X
  
  [29X[2XIsBravaisGroup[102X( [3XG[103X ) [32X property
  
  [33X[0;0Ytest   whether   [3XG[103X  coincides  with  its  Bravais  group  (see  [2XBravaisGroup[102X
  ([14X44.6-11[114X)).[133X
  
  [1X44.6-11 BravaisGroup[101X
  
  [29X[2XBravaisGroup[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yreturns  the  Bravais  group of a finite integer matrix group [3XG[103X. If [22XC[122X is the
  cone of positive definite quadratic forms [22XQ[122X invariant under [22Xg ↦ g Q g^tr[122X for
  all  [22Xg  ∈  [3XG[103X[122X, then the Bravais group of [3XG[103X is the maximal subgroup of [22XGL_n(ℤ)[122X
  leaving  the  forms  in that same cone invariant. Alternatively, the Bravais
  group  of  [3XG[103X  can also be defined with respect to the action [22Xg ↦ g^tr Q g[122X on
  positive  definite  quadratic forms [22XQ[122X. This latter definition is appropriate
  for  groups  [3XG[103X  acting  from  the  right  on row vectors, whereas the former
  definition is appropriate for groups acting from the left on column vectors.
  Both definitions yield the same Bravais group.[133X
  
  [1X44.6-12 BravaisSubgroups[101X
  
  [29X[2XBravaisSubgroups[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yreturns  the  subgroups  of  the  Bravais  group  of [3XG[103X, which are themselves
  Bravais groups.[133X
  
  [1X44.6-13 BravaisSupergroups[101X
  
  [29X[2XBravaisSupergroups[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yreturns the subgroups of [22XGL_n(ℤ)[122X that contain the Bravais group of [3XG[103X and are
  Bravais groups themselves.[133X
  
  [1X44.6-14 NormalizerInGLnZBravaisGroup[101X
  
  [29X[2XNormalizerInGLnZBravaisGroup[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yreturns the normalizer of the Bravais group of [3XG[103X in the appropriate [22XGL_n(ℤ)[122X.[133X
  
  
  [1X44.7 [33X[0;0YActing OnRight and OnLeft[133X[101X
  
  [33X[0;0YIn [5XGAP[105X, matrices by convention act on row vectors from the right, whereas in
  crystallography  the  convention  is to act on column vectors from the left.
  The  definition  of  certain  algebraic objects important in crystallography
  implicitly depends on which action is assumed. This holds true in particular
  for  quadratic  forms  invariant under a matrix group. In a similar way, the
  representation  of  affine  crystallographic groups, as they are provided by
  the   [5XGAP[105X   package   [5XCrystGap[105X,   depends   on   which  action  is  assumed.
  Crystallographers  are  used to the action from the left, whereas the action
  from  the  right  is  the  natural one for [5XGAP[105X. For this reason, a number of
  functions  which  are important in crystallography, and whose result depends
  on  which action is assumed, are provided in two versions, one for the usual
  action  from  the  right,  and  one for the crystallographic action from the
  left.[133X
  
  [33X[0;0YFor  every  such  function,  this  fact  is explicitly mentioned. The naming
  scheme  is  as  follows:  If  [10XSomeThing[110X  is  such  a function, there will be
  functions  [10XSomeThingOnRight[110X  and  [10XSomeThingOnLeft[110X,  assuming action from the
  right  and  from  the  left,  respectively.  In addition, there is a generic
  function  [10XSomeThing[110X,  which returns either the result of [10XSomeThingOnRight[110X or
  [10XSomeThingOnLeft[110X,  depending  on  the global variable [2XCrystGroupDefaultAction[102X
  ([14X44.7-1[114X).[133X
  
  [1X44.7-1 CrystGroupDefaultAction[101X
  
  [29X[2XCrystGroupDefaultAction[102X[32X global variable
  
  [33X[0;0Ycan  have  either  of the two values [10XRightAction[110X and [10XLeftAction[110X. The initial
  value  is [10XRightAction[110X. For functions which have variants OnRight and OnLeft,
  this  variable determines which variant is returned by the generic form. The
  value  of  [2XCrystGroupDefaultAction[102X  can  be  changed  with with the function
  [2XSetCrystGroupDefaultAction[102X ([14X44.7-2[114X).[133X
  
  [1X44.7-2 SetCrystGroupDefaultAction[101X
  
  [29X[2XSetCrystGroupDefaultAction[102X( [3Xaction[103X ) [32X function
  
  [33X[0;0Yallows  one  to set the value of the global variable [2XCrystGroupDefaultAction[102X
  ([14X44.7-1[114X).  Only  the  arguments  [10XRightAction[110X  and  [10XLeftAction[110X  are  allowed.
  Initially, the value of [2XCrystGroupDefaultAction[102X ([14X44.7-1[114X) is [10XRightAction[110X.[133X
  
