  
  [1X7 [33X[0;0YFunctions for calculating Schur indices and identifying division algebras[133X[101X
  
  
  [1X7.1 [33X[0;0YMain Schur Index and Division Algebra Functions[133X[101X
  
  [1X7.1-1 WedderburnDecompositionWithDivAlgParts[101X
  
  [33X[1;0Y[29X[2XWedderburnDecompositionWithDivAlgParts[102X( [3XA[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10YA  list of lists [10X[r,D][110X, each representing a ring of [22Xr × r[122X matrices
            over a field or division algebra [9XD[109X.[133X
  
  [33X[0;0YThe  input [3XA[103X should be a group ring of a finite group over an abelian number
  field. The function will give the same result as [2XWedderburnDecompositionInfo[102X
  ([14X2.1-2[114X)  if  the  field  of  coefficients  for the group ring is finite. The
  output  is a list of pairs [10X[r,D][110X, each of which indicates a simple component
  isomorphic  to  the ring of [22Xr × r[122X matrices over a division algebra described
  using  the  information in the record [10XD[110X. This record contains information on
  the center, Schur index, and local indices of the division algebra.[133X
  
  [33X[0;0Y[10XLocal  indices[110X  is  a  list  of  pairs  [22X[p,m][122X,  where  [22Xp[122X is a rational prime
  (possibly  'infinity')  and  [22Xm[122X is the local index of the division algebra at
  the prime [22Xp[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(48,15);[127X[104X
    [4X[28X<pc group of size 48 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XR:=GroupRing(Rationals,G);       [127X[104X
    [4X[28X<algebra-with-one over Rationals, with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XWedderburnDecompositionInfo(R);[127X[104X
    [4X[28X[ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], [ 1, R\[128X[104X
    [4X[28Xationals ], [128X[104X
    [4X[28X  [ 1, Rationals, 3, [ 2, 2, 0 ] ], [ 1, Rationals, 4, [ 2, 3,\[128X[104X
    [4X[28X 0 ] ], [128X[104X
    [4X[28X  [ 1, Rationals, 6, [ 2, 5, 0 ] ], [ 1, NF(8,[ 1, 7 ]), 8, [ \[128X[104X
    [4X[28X2, 7, 0 ] ], [128X[104X
    [4X[28X  [ 2, CF(3) ], [ 1, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ]\[128X[104X
    [4X[28X ], [ [ 3 ] ] ] [128X[104X
    [4X[28X ][128X[104X
    [4X[25Xgap>[125X [27XWedderburnDecompositionWithDivAlgParts(R);[127X[104X
    [4X[28X[ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], [ 1, R\[128X[104X
    [4X[28Xationals ], [128X[104X
    [4X[28X  [ 2, Rationals ], [ 2, Rationals ], [ 2, Rationals ], [ 2, N\[128X[104X
    [4X[28XF(8,[ 1, 7 ]) ],[128X[104X
    [4X[28X  [ 2, CF(3) ], [128X[104X
    [4X[28X  [ 2, [128X[104X
    [4X[28X      rec( Center := Rationals, DivAlg := true, [128X[104X
    [4X[28X          LocalIndices := [ [ 2, 2 ], [ 3, 2 ] ], SchurIndex :\[128X[104X
    [4X[28X= 2 ) ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.1-2 CyclotomicAlgebraWithDivAlgPart[101X
  
  [33X[1;0Y[29X[2XCyclotomicAlgebraWithDivAlgPart[102X( [3XA[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10YA list of length two indicating a matrix ring of a given size over
            a field or a noncommutative division algebra.[133X
  
  [33X[0;0YThe  input  [3XA[103X  should be a cyclotomic algebra; i.e. a crossed product in the
  same  form  as  in  the  output  of [2XWedderburnDecompositionInfo[102X ([14X2.1-2[114X). The
  output  is  in the form [10X[r,D][110X, which indicates an [22Xr × r[122X matrix ring over the
  division  algebra  described  by  [10XD[110X. [10XD[110X is either a field or a noncommutative
  division  algebra described using a record giving information on the center,
  Schur index, and local indices of the division algebra.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(240,89);[127X[104X
    [4X[28X<permutation group of size 240 with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XR:=GroupRing(Rationals,G);[127X[104X
    [4X[28X<algebra-with-one over Rationals, with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XW:=WedderburnDecompositionInfo(R);[127X[104X
    [4X[28XWedderga: Warning!!! [128X[104X
    [4X[28XSome of the Wedderburn components displayed are FRACTIONAL MATRIX ALGEBRAS!!![128X[104X
    [4X[28X[128X[104X
    [4X[28X[ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals, 10, [ 4, 3, 5 ] ], [128X[104X
    [4X[28X  [ 4, Rationals ], [ 4, Rationals ], [ 5, Rationals ], [ 5, Rationals ], [128X[104X
    [4X[28X  [ 6, Rationals ], [ 1, NF(12,[ 1, 11 ]), 10, [ 4, 3, 5 ] ], [128X[104X
    [4X[28X  [ 3/2, NF(8,[ 1, 7 ]), 10, [ 4, 3, 5 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XCyclotomicAlgebraWithDivAlgPart(W[3]);[127X[104X
    [4X[28X[ 2, rec( Center := Rationals, DivAlg := true, [128X[104X
    [4X[28X      LocalIndices := [ [ 5, 2 ], [ infinity, 2 ] ], SchurIndex := 2 ) ][128X[104X
    [4X[25Xgap>[125X [27XCyclotomicAlgebraWithDivAlgPart(W[9]);[127X[104X
    [4X[28X[ 2, rec( Center := NF(12,[ 1, 11 ]), DivAlg := true, [128X[104X
    [4X[28X      LocalIndices := [ [ infinity, 2 ] ], SchurIndex := 2 ) ][128X[104X
    [4X[25Xgap>[125X [27XCyclotomicAlgebraWithDivAlgPart(W[10]);[127X[104X
    [4X[28X[ 3, rec( Center := NF(8,[ 1, 7 ]), DivAlg := true, [128X[104X
    [4X[28X      LocalIndices := [ [ infinity, 2 ] ], SchurIndex := 2 ) ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.1-3 SchurIndex[101X
  
  [33X[1;0Y[29X[2XSchurIndex[102X( [3XA[103X ) [32X property[133X
  [33X[1;0Y[29X[2XSchurIndexByCharacter[102X( [3XF[103X, [3XG[103X, [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  first  of these returns the Schur index of the simple algebra
            [3XA[103X.  The  second returns the Schur index of the simple component of
            the  group  ring  [3XFG[103X  corresponding  to  the irreducible character
            [10XIrr(G)[n][110X of [3XG[103X.[133X
  
  [33X[0;0YThese  are  the main functions for computing Schur indices. The first can be
  used  to  find  the  rational Schur index of a simple component of the group
  ring of a finite group over an abelian number field, or a quaternion algebra
  in  [5XGAP[105X  (see [2XQuaternionAlgebra[102X ([14XReference: QuaternionAlgebra[114X)) whose center
  is the field of rational numbers. If [3XA[103X is a quaternion algebra over a number
  field  other  than  the  Rationals,  [10Xfail[110X  is  returned. In these cases, the
  quaternion  algebra can be converted to a cyclic algebra and the Schur index
  of  the  cyclic  algebra  can  be  determined  through  the solution of norm
  equations.  Currently  this  functionality  is  not  implemented in [5XGAP[105X, but
  available in number theory packages such as [5XPARI/GP[105X.[133X
  
  [33X[0;0YThe  second function computes the Schur index of the cyclotomic algebra that
  would occur as the simple component of the group ring [3XFG[103X that corresponds to
  the     irreducible     character     [10XIrr(G)[n][110X.     The    function    uses
  [2XSimpleComponentOfGroupRingByCharacter[102X  ([14X7.4-3[114X),  which identifies the simple
  component  of  [10XGroupRing(F,G)[110X  in  the output of [2XWedderburnDecompositionInfo[102X
  ([14X2.1-2[114X)  that  corresponds to [10XIrr(G)[n][110X by a simple dimension count. Because
  of  this,  it  is  important  that  users  use the same presentation of [3XG[103X to
  identify [10XIrr(G)[n][110X, the [3Xn[103X-th character in the list [10XIrr(G)[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(63,1);  [127X[104X
    [4X[28X<pc group of size 63 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XR:=GroupRing(Rationals,G);[127X[104X
    [4X[28X<algebra-with-one over Rationals, with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XW:=WedderburnDecompositionInfo(R);[127X[104X
    [4X[28X[ [ 1, Rationals ], [ 1, CF(3) ], [ 1, CF(9) ], [128X[104X
    [4X[28X  [ 1, NF(7,[ 1, 2, 4 ]), 7, [ 3, 2, 0 ] ], [128X[104X
    [4X[28X  [ 1, NF(21,[ 1, 4, 16 ]), 21, [ 3, 4, 7 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XSchurIndex(W[5]);[127X[104X
    [4X[28X3[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(40,1);              [127X[104X
    [4X[28X<pc group of size 40 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(Irr(G));                          [127X[104X
    [4X[28X16[128X[104X
    [4X[25Xgap>[125X [27XSchurIndexByCharacter(GaussianRationals,G,16);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XSchurIndexByCharacter(CF(5),G,16);         [127X[104X
    [4X[28X1[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.1-4 WedderburnDecompositionAsSCAlgebras[101X
  
  [33X[1;0Y[29X[2XWedderburnDecompositionAsSCAlgebras[102X( [3XR[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XCyclotomicAlgebraAsSCAlgebra[102X( [3XA[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSimpleComponentByCharacterAsSCAlgebra[102X( [3XF[103X, [3XG[103X, [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  first  of  these  returns the Wedderburn decomposition of the
            group  ring  [10XR[110X  with each simple component presented as an algebra
            with  structure  constants  in  [5XGAP[105X  (see [14X'Reference: Constructing
            Algebras  by  Structure  Constants'[114X  in  the main [5XGAP[105X manual). The
            second    converts    a    list    [10XA[110X    that    is   output   from
            [2XWedderburnDecompositionInfo[102X ([14X2.1-2[114X) into an algebra with structure
            constants  in  [5XGAP[105X. The third determines an algebra with structure
            constants  that is isomorphic to the simple component of the group
            ring  of  the  finite group [10XG[110X over the field [10XF[110X that corresponds to
            the irreducible character [10XIrr(G)[n][110X.[133X
  
  [33X[0;0YThese  functions  are  an option for obtaining a Wedderburn decomposition or
  simple  component of the group ring [10XFG[110X in which the output is in the form of
  an  algebra  with  structure  constants, which is more compatible with GAP's
  built-in operations for finite-dimensional algebras.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(63,1);                                  [127X[104X
    [4X[28X<pc group of size 63 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XR:=GroupRing(Rationals,G);[127X[104X
    [4X[28X<algebra-with-one over Rationals, with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XW:=WedderburnDecompositionInfo(R);[127X[104X
    [4X[28X[ [ 1, Rationals ], [ 1, CF(3) ], [ 1, CF(9) ], [128X[104X
    [4X[28X  [ 1, NF(7,[ 1, 2, 4 ]), 7, [ 3, 2, 0 ] ], [128X[104X
    [4X[28X  [ 1, NF(21,[ 1, 4, 16 ]), 21, [ 3, 4, 7 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XWedderburnDecompositionWithDivAlgParts(R);[127X[104X
    [4X[28X[ [ 1, Rationals ], [ 1, CF(3) ], [ 1, CF(9) ], [ 3, NF(7,[ 1, 2, 4 ]) ], [128X[104X
    [4X[28X  [ 1, [128X[104X
    [4X[28X      rec( Center := NF(21,[ 1, 4, 16 ]), DivAlg := true, [128X[104X
    [4X[28X          LocalIndices := [ [ 7, 3 ] ], SchurIndex := 3 ) ] ][128X[104X
    [4X[25Xgap>[125X [27XWedderburnDecompositionAsSCAlgebras(R);[127X[104X
    [4X[28X[ Rationals, CF(3), CF(9), <algebra of dimension 9 over NF(7,[ 1, 2, 4 ])>, [128X[104X
    [4X[28X  <algebra of dimension 9 over NF(21,[ 1, 4, 16 ])> ][128X[104X
    [4X[25Xgap>[125X [27XCyclotomicAlgebraAsSCAlgebra(W[5]);[127X[104X
    [4X[28X<algebra of dimension 9 over NF(21,[ 1, 4, 16 ])>[128X[104X
    [4X[25Xgap>[125X [27XSize(Irr(G));                                         [127X[104X
    [4X[28X15[128X[104X
    [4X[25Xgap>[125X [27XSimpleComponentByCharacterAsSCAlgebra(Rationals,G,15);[127X[104X
    [4X[28X<algebra of dimension 9 over NF(21,[ 1, 4, 16 ])>[128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X7.2 [33X[0;0YCyclotomic Reciprocity Functions[133X[101X
  
  [1X7.2-1 PPartOfN[101X
  
  [33X[1;0Y[29X[2XPPartOfN[102X( [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPDashPartOfN[102X( [3Xn[103X, [3Xp[103X ) [32X operation[133X
  
  [33X[0;0YThese  are standard arithmetic functions required by several subroutines for
  the cyclotomic reciprocity and Schur index functions in [5XWedderga[105X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XPPartOfN(2275,5);[127X[104X
    [4X[28X25[128X[104X
    [4X[25Xgap>[125X [27XPDashPartOfN(2275,5);[127X[104X
    [4X[28X91[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.2-2 PSplitSubextension[101X
  
  [33X[1;0Y[29X[2XPSplitSubextension[102X( [3XF[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  maximal  subextension [10XK[110X of the cyclotomic extension [10XF(E(n))/F[110X
            for which [22XK/F[122X splits completely at the prime [22Xp[122X.[133X
  
  [33X[0;0YThis  function  finds the maximal subextension [10XK[110X of the cyclotomic extension
  [10XF(E(n))[110X  of  an abelian number field [10XF[110X for which both the ramification index
  and  residue degree of [10XK/F[110X over any prime lying over [3Xp[103X are [22X1[122X. To do this, it
  finds  the  field  fixed  by  an appropriate power of the field automorphism
  inducing the local Frobenius automorphism.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XPSplitSubextension(Rationals,60,5);  [127X[104X
    [4X[28XGaussianRationals[128X[104X
    [4X[25Xgap>[125X [27XPSplitSubextension(NF(5,[1,4]),70,2);[127X[104X
    [4X[28XNF(35,[ 1, 4, 9, 11, 16, 29 ])[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.2-3 SplittingDegreeAtP[101X
  
  [33X[1;0Y[29X[2XSplittingDegreeAtP[102X( [3XF[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XResidueDegreeAtP[102X( [3XF[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XRamificationIndexAtP[102X( [3XF[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  splitting  degree,  residue degree, and ramification index of
            the extension [10XF(E(n))/F[110X at the prime [22Xp[122X.[133X
  
  [33X[0;0YThese  functions calculate the cyclotomic reciprocity parameters [10Xg[110X, [10Xf[110X, and [10Xe[110X
  for the extension [10XF(E(n))/F[110X at the prime [22Xp[122X for an abelian number field [10XF[110X. To
  do  this,  it  finds the [10Xp[110X-split subextension [10XK[110X and the [22Xp[122X-dash part [22Xn'[122X of [22Xn[122X,
  then  calculates  [10Xg  =  [K:F][110X,  [10Xf = [K(E(n'):K][110X, and [10Xe = [K(E(n)):K(E(n'))][110X.
  These   functions  enable  the  user  to  calculate  cyclotomic  reciprocity
  parameters  for  any  extension  of  abelian  number  fields, as the example
  illustrates.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XF:=CF(12);[127X[104X
    [4X[28XCF(12)[128X[104X
    [4X[25Xgap>[125X [27XK:=NF(120,[1,49]) # Note that F is a subfield of K, with index 4.[127X[104X
    [4X[25X>[125X [27X; # Then we can find e, f, and g for the extension K/F at the prime 5. [127X[104X
    [4X[28XNF(120,[ 1, 49 ])[128X[104X
    [4X[25Xgap>[125X [27XRamificationIndexAtP(F,120,5); RamificationIndexAtP(K,120,5); last2/last;[127X[104X
    [4X[28X4[128X[104X
    [4X[28X2[128X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XResidueDegreeAtP(F,120,5); ResidueDegreeAtP(K,120,5); last2/last;[127X[104X
    [4X[28X1[128X[104X
    [4X[28X1[128X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XSplittingDegreeAtP(F,120,5); SplittingDegreeAtP(K,120,5); last2/last;[127X[104X
    [4X[28X2[128X[104X
    [4X[28X1[128X[104X
    [4X[28X2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X7.3 [33X[0;0YLocal index functions for Cyclic Cyclotomic Algebras[133X[101X
  
  [1X7.3-1 LocalIndicesOfCyclicCyclotomicAlgebra[101X
  
  [33X[1;0Y[29X[2XLocalIndicesOfCyclicCyclotomicAlgebra[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA  list of the pairs [10X[p,m][110X indicating the nontrivial local indices
            [10Xm[110X at the primes [10Xp[110X of the cyclic cyclotomic algebra indicated by [10XA[110X.[133X
  
  [33X[0;0YThe  input  [10XA[110X must be a list representing a cyclic cyclotomic algebra in the
  same  form  as  in  the  output  of  [2XWedderburnDecompositionInfo[102X  ([14X2.1-2[114X) or
  [2XSimpleAlgebraByCharacterInfo[102X ([14X2.2-2[114X). This function computes the local Schur
  indices  at  rational  primes  [22Xp[122X  using the specialized functions for cyclic
  cyclotomic algebras described in this section.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA:=[1,Rationals,6,[2,5,3]];[127X[104X
    [4X[28X[ 1, Rationals, 6, [ 2, 5, 3 ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfCyclicCyclotomicAlgebra(A);[127X[104X
    [4X[28X[ [ 3, 2 ], [ infinity, 2 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.3-2 LocalIndexAtInfty[101X
  
  [33X[1;0Y[29X[2XLocalIndexAtInfty[102X( [3XA[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XLocalIndexAtTwo[102X( [3XA[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XLocalIndexAtOddP[102X( [3XA[103X, [3Xp[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThese return the local index of the cyclic cyclotomic algebra [3XA[103X at
            the indicated rational prime.[133X
  
  [33X[0;0YThe input [10XA[110X must be a cyclic cyclotomic algebra; that is, a list of the form
  [10X[r,F,n,[a,b,c]][110X  that indicates a cyclic cyclotomic crossed product algebra.
  This    is    a    special    case    of    the    output    of   [5Xwedderga[105X's
  [2XWedderburnDecompositionInfo[102X ([14X2.1-2[114X) or [2XSimpleAlgebraByCharacterInfo[102X ([14X2.2-2[114X).
  For  the  [2XLocalIndexAtOddP[102X  function,  [3Xp[103X must be an odd prime. The functions
  [2XPPartOfN[102X    ([14X7.2-1[114X)    and    [2XPDashPartOfN[102X   ([14X7.2-1[114X)   are   standard   (and
  self-explanatory) arithmetic functions for a positive integer [22Xn[122X and prime [22Xp[122X.[133X
  
  [33X[0;0YThese  functions determine the local index of a cyclic cyclotomic algebra at
  the  rational primes [10X'infinity'[110X, [22X2[122X, or odd primes [22Xp[122X, respectively. The first
  two  functions  check  for  a relationship of [22XA[122X to a nonsplit real or 2-adic
  quaternion  algebra.  [2XLocalIndexAtOddP[102X  calculates  the  local index at [22Xp[122X by
  counting  the  number  of  roots  of  unity coprime to [22Xp[122X found in the [22Xp[122X-adic
  completion, and using a formula due to Janusz.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA:=[1,CF(4),20,[4,13,15]];[127X[104X
    [4X[28X[ 1, GaussianRationals, 20, [ 4, 13, 15 ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtOddP(A,5);[127X[104X
    [4X[28X4[128X[104X
    [4X[25Xgap>[125X [27XA:=[1,NF(8,[1,7]),8,[2,7,4]];[127X[104X
    [4X[28X[ 1, NF(8,[ 1, 7 ]), 8, [ 2, 7, 4 ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtInfty(A);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XA:=[1,CF(7),28,[2,15,14]];                        [127X[104X
    [4X[28X[ 1, CF(7), 28, [ 2, 15, 14 ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtTwo(A);     [127X[104X
    [4X[28X2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X7.4 [33X[0;0YLocal index functions for Non-Cyclic Cyclotomic Algebras[133X[101X
  
  [1X7.4-1 LocalIndicesOfCyclotomicAlgebra[101X
  
  [33X[1;0Y[29X[2XLocalIndicesOfCyclotomicAlgebra[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA list of pairs [10X[p,m][110X indicating the nontrivial local indices [10Xm[110X at
            the primes [10Xp[110X of the cyclic cyclotomic algebra indicated by [10XA[110X.[133X
  
  [33X[0;0YThe input [10XA[110X should be a cyclotomic algebra; i.e. a list of length 2, 4, or 5
  in  the  form of the output by [5XWedderga[105X's [21X-Info[121X functions. If the cyclotomic
  algebra [3XA[103X is represented by a list of length 2, the local indices are all [22X1[122X,
  so  the  function  will return an empty list. If the cyclotomic algebra [3XA[103X is
  given by a list of length 4, then it represents a cyclic cyclotomic algebra,
  so  the  function [2XLocalIndicesOfCyclicCyclotomicAlgebra[102X ([14X7.3-1[114X) is utilized.
  If the cyclotomic algebra [10XA[110X is presented as a list of length 5, the function
  determines the group and character [10Xchi[110X that faithfully represent the algebra
  using          [2XDefiningGroupOfCyclotomicAlgebra[102X          ([14X7.4-3[114X)         and
  [2XDefiningCharacterOfCyclotomicAlgebra[102X  ([14X7.4-3[114X).  It  uses the Frobenius-Schur
  indicator   of   [10Xchi[110X   to   determine  the  local  index  at  infinity  (see
  [2XLocalIndexAtInftyByCharacter[102X  ([14X7.4-4[114X)).  For local indices at odd primes and
  sometimes for the prime [22X2[122X, the defect group of the block containing [10Xchi[110X will
  be  cyclic,  so  the  local  index can be found using the values of a Brauer
  character   by  a  theorem  of  Benard  (see  [2XLocalIndexAtPByBrauerCharacter[102X
  ([14X7.4-6[114X).)  Sometimes  for  the  prime  2 the defect group is not necessarily
  cyclic,  so  in  these cases we appeal to the classification of dyadic Schur
  groups by Schmid and Riese (see [2XLocalIndexAtTwoByCharacter[102X ([14X7.4-7[114X)).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(480,600);[127X[104X
    [4X[28X<pc group of size 480 with 7 generators>[128X[104X
    [4X[25Xgap>[125X [27XW:=WedderburnDecompositionInfo(GroupRing(Rationals,G));;[127X[104X
    [4X[25Xgap>[125X [27XSize(W); [127X[104X
    [4X[28X27[128X[104X
    [4X[25Xgap>[125X [27XW[27]; [127X[104X
    [4X[28X[ 1, NF(5,[ 1, 4 ]), 60, [ [ 2, 11, 0 ], [ 2, 19, 30 ], [ 2, 31, 30 ] ], [128X[104X
    [4X[28X  [ [ 0, 45 ], [ 15 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfCyclotomicAlgebra(W[27]);[127X[104X
    [4X[28X[ [ infinity, 2 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.4-2 RootOfDimensionOfCyclotomicAlgebra[101X
  
  [33X[1;0Y[29X[2XRootOfDimensionOfCyclotomicAlgebra[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA  positive  integer representing the square root of the dimension
            of the cyclotomic algebra over its center.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA:=[3,Rationals,12,[[2,5,3],[2,7,0]],[[3]]];[127X[104X
    [4X[28X[ 3, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ] ], [ [ 3 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XRootOfDimensionOfCyclotomicAlgebra(A);      [127X[104X
    [4X[28X12[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.4-3 DefiningGroupOfCyclotomicAlgebra[101X
  
  [33X[1;0Y[29X[2XDefiningGroupOfCyclotomicAlgebra[102X( [3XA[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XDefiningCharacterOfCyclotomicAlgebra[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThese  functions  return a finite group [10XG[110X and a positive integer [10Xn[110X
            for  which the simple component of a group algebra over [10XG[110X over the
            center  of the cyclotomic algebra [10XA[110X corresponding to the character
            [10XIrr(G)[n][110X will be isomorphic to [10XA[110X.[133X
  
  [33X[1;0Y[29X[2XSimpleComponentOfGroupRingByCharacter[102X( [3XF[103X, [3XG[103X, [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA  list  that  describes  the  algebraic  structure  of the simple
            component  of  the  group  algebra  [10XFG[110X  which  corresponds  to the
            irreducible character Irr(G)[n].[133X
  
  [33X[0;0YThis          function          is         an         alternative         to
  [10XSimpleAlgebraByCharacterInfo(GroupRing(F,G),[110X  [10XIrr(G)[n]);[110X.  It  is  used  in
  subroutines  of  local  index  functions  when  we need to work over a field
  larger than the field of character values.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(48,15);[127X[104X
    [4X[28X<pc group of size 48 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XR:=GroupRing(Rationals,G);                [127X[104X
    [4X[28X<algebra-with-one over Rationals, with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XW:=WedderburnDecompositionInfo(R);;  [127X[104X
    [4X[25Xgap>[125X [27XA:=W[10];[127X[104X
    [4X[28X[ 1, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ] ], [ [ 3 ] ] ][128X[104X
    [4X[25Xgap>[125X [27Xg:=DefiningGroupOfCyclotomicAlgebra(A);[127X[104X
    [4X[28XGroup([ f3*f4*f5, f1, f2 ])[128X[104X
    [4X[25Xgap>[125X [27XIdSmallGroup(g);[127X[104X
    [4X[28X[ 48, 15 ][128X[104X
    [4X[25Xgap>[125X [27XDefiningCharacterOfCyclotomicAlgebra(A);[127X[104X
    [4X[28X12[128X[104X
    [4X[25Xgap>[125X [27XSimpleComponentOfGroupRingByCharacter(Rationals,G,12);[127X[104X
    [4X[28X[ 1, Rationals, 12, [ [ 2, 5, 3 ], [ 2, 7, 0 ] ], [ [ 3 ] ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.4-4 LocalIndexAtInftyByCharacter[101X
  
  [33X[1;0Y[29X[2XLocalIndexAtInftyByCharacter[102X( [3XF[103X, [3XG[103X, [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  local  index  at  an  infinite  prime  of  the field [3XF[103X of the
            irreducible character [10XIrr(G)[n][110X of the finite group [3XG[103X.[133X
  
  [33X[0;0YThis  function  computes  the  Frobenius-Schur  indicator of the irreducible
  character [10XIrr(G)[n][110X, and uses it to calculate the local index at [10Xinfinity[110X of
  the corresponding simple component of [3XFG[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(48,16);[127X[104X
    [4X[28X<pc group of size 48 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(Irr(G));                          [127X[104X
    [4X[28X12[128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtInftyByCharacter(Rationals,G,12);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtInftyByCharacter(CF(3),G,12);    [127X[104X
    [4X[28X1[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.4-5 DefectGroupOfConjugacyClassAtP[101X
  
  [33X[1;0Y[29X[2XDefectGroupOfConjugacyClassAtP[102X( [3XG[103X, [3Xc[103X, [3Xp[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XDefectGroupsOfPBlock[102X( [3XG[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XDefectOfCharacterAtP[102X( [3XG[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  first  of  these functions returns a defect group of the [10Xc[110X-th
            conjugacy  class  of the finite group [10XG[110X at the prime [10Xp[110X. The second
            returns  the  conjugacy class of [10Xp[110X-subgroups of [10XG[110X that consists of
            defect  groups for the [10Xp[110X-block containing the ordinary irreducible
            character  [10XIrr(G)[n][110X.  The  last  of  these  functions returns the
            nonnegative  integer  [10Xd[110X  for  which [10Xp^d[110X is the order of a [10Xp[110X-defect
            group for [10XIrr(G)[n][110X.[133X
  
  [33X[0;0YThe  [10Xp[110X-defect group of a given conjugacy class of [10XG[110X is a [10Xp[110X-Sylow subgroup of
  the  centralizer in [10XG[110X of any representative of the class. A defect group for
  a  [10Xp[110X-block  of [10XG[110X is a minimal [10Xp[110X-subgroup that is a defect group for a defect
  class  of  the  block.  By  Brauer's Min-Max theorem, this will occur for at
  least one [10Xp[110X-regular class of [10XG[110X. The function [2XDefectGroupsOfPBlock[102X identifies
  the  defect  classes for the block containing [10XIrr(G)[n][110X, finds the one whose
  defect  group  has  minimal  order,  and  returns the conjugacy class of the
  defect  group  of  this  class.  The function [2XDefectOfCharacterAtP[102X gives the
  logarithm  base  [10Xp[110X  of the order of a defect group of the [10Xp[110X-block containing
  the character [10XIrr(G)[n][110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(72,21);[127X[104X
    [4X[28X<pc group of size 72 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XD:=DefectGroupOfConjugacyClassAtP(G,18,3);[127X[104X
    [4X[28XGroup([ f4, f5 ])[128X[104X
    [4X[25Xgap>[125X [27XIsCyclic(last);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XD:=DefectGroupsOfPBlock(G,Irr(G)[18],3);[127X[104X
    [4X[28XGroup( [ f4, f5 ] )^G[128X[104X
    [4X[25Xgap>[125X [27XIsCyclic(Representative(D));    [127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XDefectOfCharacterAtP(G,Irr(G)[18],3);[127X[104X
    [4X[28X2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.4-6 LocalIndexAtPByBrauerCharacter[101X
  
  [33X[1;0Y[29X[2XLocalIndexAtPByBrauerCharacter[102X( [3XF[103X, [3XG[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XFinFieldExt[102X( [3XF[103X, [3XG[103X, [3Xp[103X, [3Xn[103X, [3Xm[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  first  returns the local index at the rational prime [22Xp[122X of the
            simple  component  of  the  group  ring  [10XFG[110X  that  corresponds  to
            [10XIrr(G)[n][110X. The second returns the degree of a certain extension of
            finite fields of [10Xp[110X-power order.[133X
  
  [33X[0;0YThe  input of [2XLocalIndexAtPByBrauerCharacter[102X must be an abelian number field
  [3XF[103X,  a  finite group [3XG[103X, and the number [3Xn[103X of an ordinary irreducible character
  [10XIrr(G)[n][110X,  and  [3Xp[103X a prime divisor of the order of [3XG[103X. Since this function is
  intended  to be used for faithful characters of groups that are the defining
  groups  of  non-cyclic  cyclotomic algebras that result from [5XWedderga[105X's Info
  functions, it is expected that [10XG[110X is a non-nilpotent cyclic-by-abelian group,
  and [10XIrr(G)[n][110X is a faithful character. The Brauer character table records of
  such groups can be accessed in [9XGAP[109X (provided [10XG[110X is sufficiently small).[133X
  
  [33X[0;0YThe  local  index  calculation  uses  Benard's theorem, which shows that the
  local  index  at  [3Xp[103X of the simple component of the rational group algebra [3XQG[103X
  corresponding  to  the character [10XIrr(G)[n][110X is the degree of the extension of
  the  residue  field of the center given by adjoining an irreducible [3Xp[103X-Brauer
  character  [10XIBr(G,p)[m][110X lying in the same block, provided the defect group of
  the  block  is  cyclic.  If the defect group of the block is not cyclic, the
  resulting  calculation  is  unreliable,  and the function will output a list
  whose  second  term  is  the warning label [10X"DGnotCyclic"[110X. The degree of this
  finite field extension is calculated by [2XFinFieldExt[102X. It determines the local
  index  relative  to  the  field  [10XF[110X by dividing the local index at [22Xp[122X over the
  rationals by a constant determied using a theorem of Yamada.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(80,28);[127X[104X
    [4X[28X<pc group of size 80 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XT:=CharacterTable(G);;                                         [127X[104X
    [4X[25Xgap>[125X [27XS:=T mod 5;[127X[104X
    [4X[28XBrauerTable( <pc group of size 80 with 5 generators>, 5 )[128X[104X
    [4X[25Xgap>[125X [27XBlocksInfo(S);[127X[104X
    [4X[28X[ rec( defect := 1, modchars := [ 1, 3, 7, 8 ], [128X[104X
    [4X[28X      ordchars := [ 1, 3, 7, 8, 18 ] ), [128X[104X
    [4X[28X  rec( defect := 1, modchars := [ 2, 4, 5, 6 ], [128X[104X
    [4X[28X      ordchars := [ 2, 4, 5, 6, 17 ] ), [128X[104X
    [4X[28X  rec( defect := 1, modchars := [ 9, 12, 14, 15 ], [128X[104X
    [4X[28X      ordchars := [ 9, 12, 14, 15, 19 ] ), [128X[104X
    [4X[28X  rec( defect := 1, modchars := [ 10, 11, 13, 16 ], [128X[104X
    [4X[28X      ordchars := [ 10, 11, 13, 16, 20 ] ) ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtPByBrauerCharacter(Rationals,G,20,5);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtPByBrauerCharacter(Rationals,G,10,5);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XFinFieldExt(Rationals,G,5,20,10);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XFinFieldExt(Rationals,G,5,10,10);                [127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XValuesOfClassFunction(Irr(G)[20]);  [127X[104X
    [4X[28X[ 4, 0, 4*E(4), 0, -4, -1, 0, 0, 0, 0, -4*E(4), -E(4), 0, 1, 0, 0, 0, 0, [128X[104X
    [4X[28X  E(4), 0 ][128X[104X
    [4X[25Xgap>[125X [27XValuesOfClassFunction(Irr(G)[10]);  [127X[104X
    [4X[28X[ 1, -E(8)^3, E(4), -E(4), -1, 1, E(8), -E(8), E(8)^3, 1, -E(4), E(4), E(4), [128X[104X
    [4X[28X  -1, -E(8)^3, -E(8), E(8), -1, -E(4), E(8)^3 ][128X[104X
    [4X[25Xgap>[125X [27XValuesOfClassFunction(IBr(G,5)[10]);[127X[104X
    [4X[28X[ 1, -E(8)^3, E(4), -E(4), -1, E(8), -E(8), E(8)^3, 1, -E(4), E(4), -E(8)^3, [128X[104X
    [4X[28X  -E(8), E(8), -1, E(8)^3 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(72,20);[127X[104X
    [4X[28X<pc group of size 72 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtPByBrauerCharacter(Rationals,G,Irr(G)[11],3);[127X[104X
    [4X[28X[ 2, "DGnotCyclic" ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtPByBrauerCharacter(Rationals,G,First(Irr(G),x->Degree(x)=4),2);[127X[104X
    [4X[28X1[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.4-7 LocalIndexAtOddPByCharacter[101X
  
  [33X[1;0Y[29X[2XLocalIndexAtOddPByCharacter[102X( [3XF[103X, [3XG[103X, [3Xn[103X, [3Xp[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XLocalIndexAtTwoByCharacter[102X( [3XF[103X, [3XG[103X, [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XIsDyadicSchurGroup[102X( [3XG[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  first  two  function  determines the local index at the given
            prime  [22Xp[122X  of  the  simple  component  of  [3XFG[103X  corresponding to the
            irreducible character [10XIrr(G)[n][110X. The third one returns [10X'true'[110X if [10XG[110X
            is a dyadic Schur group, and otherwise [10X'false'[110X .[133X
  
  [33X[0;0Y[2XLocalIndexAtOddPByCharacter[102X and [2XLocalIndexAtTwoByCharacter[102X first determine a
  cyclotomic  algebra representing the simple component of [3XFG[103X corresponding to
  the  character  [10XIrr(G)[n][110X. They then extend the field [22XF[122X to [22XK[122X, where [22XK[122X is the
  maximal  [22Xp[122X-split  subextension  of  [10XF(E(n))/F[110X,  and  recalculates the simple
  component   of   [10XKG[110X   corresponding   to   [10XIrr(G)[n][110X.   It   then  uses  the
  [10XDefiningGroup...[110X  functions  to reduce to a faithful character of a possibly
  smaller  cyclic-by-abelian group. If the simple component for this character
  is  given  in  [5XWedderga[105X  as  a  list  of  length  2  or  4, they make use of
  [2XLocalIndexAtOddP[102X  ([14X7.3-2[114X)  or [2XLocalIndexAtTwo[102X ([14X7.3-2[114X) as appropriate. If the
  simple  component  over [22XF[122X has length 5, it checks if the defect group of the
  [22Xp[122X-block  containing  [10XIrr(G)[n][110X is cyclic. If this is definitely so, they use
  [2XLocalIndexAtPByBrauerCharacter[102X  ([14X7.4-6[114X)  to  calculate  the  [22Xp[122X-local  index.
  Exceptions  can  occur when [22Xp[122X is [22X2[122X. When the defect group is not necessarily
  cyclic,  [2XLocalIndexAtTwoByCharacter[102X  makes  use of [2XIsDyadicSchurGroup[102X, which
  checks  if  a  quasi-elementary  group  has a faithful irreducible character
  [10X2[110X-local  index  [10X2[110X,  then verifies that [22XK[122X does not split the simple component
  generated by this character.[133X
  
  [33X[0;0YThese  functions  are  designed  for  faithful  characters  of  groups  that
  faithfully represent cyclotomic algebras, and so should be used with caution
  in other situations.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(48,15);[127X[104X
    [4X[28X<pc group of size 48 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(Irr(G));[127X[104X
    [4X[28X12[128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtOddPByCharacter(Rationals,G,12,3);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtTwoByCharacter(Rationals,G,12);  [127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XLocalIndexAtTwoByCharacter(CF(3),G,12);    [127X[104X
    [4X[28X1[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X7.5 [33X[0;0YLocal index functions for Rational Quaternion Algebras[133X[101X
  
  [1X7.5-1 LocalIndicesOfRationalQuaternionAlgebra[101X
  
  [33X[1;0Y[29X[2XLocalIndicesOfRationalQuaternionAlgebra[102X( [3XA[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XLocalIndicesOfRationalSymbolAlgebra[102X( [3Xa[103X, [3Xb[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XLocalIndicesOfTensorProductOfQuadraticAlgs[102X( [3XL[103X, [3XM[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XGlobalSchurIndexFromLocalIndices[102X( [3XL[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe  first  of  these  functions  return  a  list  of  pairs [10X[p,m][110X
            indicating  that [10Xm[110X is the local index at the prime [22Xp[122X for the given
            quaternion    algebra.    The    second    does   the   same   for
            [10XQuaternionAlgebra(Rationals,a,b)[110X.  The  third  returns  a  list of
            local  indices computed from two given lists of local indices, and
            the  fourth returns the least common multiple of the local indices
            in the given list of local indices.[133X
  
  [33X[0;0YFor  the  first  function,  the  input must be a quaternion algebra over the
  rationals,  output  from  [10XQuaternionAlgebra(Rationals,a,b)[110X.  For  the  first
  function,  [22Xa[122X  and [22Xb[122X can be any pair of integers, and for the second rational
  symbol  algebra  version,  [22Xa[122X  and  [22Xb[122X  should  be either -1 or positive prime
  integers.  The  input  of  the  third function is a pair of lists of [22Xp[122X-local
  indices  in  which  the  maximum  local index at any prime is at most 2. The
  input  of  the  fourth function is a list of pairs [10X[p,m][110X in which each prime
  that  appears  only appears in one of the pairs, and the [10Xm[110X's that appear are
  all positive integers.[133X
  
  [33X[0;0Y[2XLocalIndicesOfRationalQuaternionAlgebra[102X  first  factors  the  algebra  as  a
  tensor  product  of rational quaternion algebras, obtaining suitable pairs [10Xa[110X
  and [10Xb[110X to which [2XLocalIndicesOfRationalSymbolAlgebra[102X can be applied. The local
  indices  are  calculated  using  well-known  formulas involving the Legendre
  Symbol.  The local indices of the original algebra are then determined using
  [2XLocalIndicesOfTensorProductOfQuadraticAlgs[102X,  which  takes a pair of lists of
  local  indices  of quadratic algebras - for which the maximum local index at
  any  prime [22Xp[122X is 2, and finds the list of local indices of the tensor product
  of two algebras with these local indices.[133X
  
  [33X[0;0Y[2XGlobalSchurIndexFromLocalIndices[102X  simply  computes the least common multiple
  of the local indices at each prime that occurs in the list.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalSymbolAlgebra(-1,-1);[127X[104X
    [4X[28X[ [ infinity, 2 ], [ 2, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalSymbolAlgebra(3,-1); [127X[104X
    [4X[28X[ [ 2, 2 ], [ 3, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalSymbolAlgebra(-3,2);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalSymbolAlgebra(3,7); [127X[104X
    [4X[28X[ [ 2, 2 ], [ 7, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27XA:=QuaternionAlgebra(Rationals,-30,-15);   [127X[104X
    [4X[28X<algebra-with-one of dimension 4 over Rationals>[128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalQuaternionAlgebra(A);[127X[104X
    [4X[28X[ [ 5, 2 ], [ infinity, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27XA:=QuaternionAlgebra(CF(5),3,-2);          [127X[104X
    [4X[28X<algebra-with-one of dimension 4 over CF(5)>[128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalQuaternionAlgebra(A);[127X[104X
    [4X[28Xfail[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.5-2 IsRationalQuaternionAlgebraADivisionRing[101X
  
  [33X[1;0Y[29X[2XIsRationalQuaternionAlgebraADivisionRing[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YIf  the  rational  quaternion algebra is a noncommutative division
            ring, [9Xtrue[109X is returned, and if otherwise, [9Xfalse[109X.[133X
  
  [33X[0;0YThe  input [22XA[122X must be a quaternion algebra over the rationals, as output from
  [10XQuaternionAlgebra(Rationals,a,b)[110X.  [22Xa[122X  and  [22Xb[122X must be rational integers. When
  applied to other algebras, it returns [9Xfail[109X.[133X
  
  [33X[0;0YThe  function  calculates  the  rational  Schur  index  of the algebra using
  [2XLocalIndicesOfRationalQuaternionAlgebra[102X  ([14X7.5-1[114X),  and  returns  [9Xtrue[109X if the
  rational  Schur  index  of the algebra is [10X2[110X, and [9Xfalse[109X if the rational Schur
  index is [10X1[110X.[133X
  
  [33X[0;0YThis  function  should  be  preferred  over [9XGAP[109X's [2XIsDivisionRing[102X ([14XReference:
  IsDivisionRing[114X)  when  dealing  with rational quaternion algebras, since the
  result  of  latter  function only depends on the local index at infinity for
  quaternion  algebras,  and  makes  no use of the local indices at the finite
  primes.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA:=QuaternionAlgebra(Rationals,-30,-15);           [127X[104X
    [4X[28X<algebra-with-one of dimension 4 over Rationals>[128X[104X
    [4X[25Xgap>[125X [27XIsRationalQuaternionAlgebraADivisionRing(A);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalQuaternionAlgebra(A);[127X[104X
    [4X[28X[ [ 5, 2 ], [ infinity, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27XA:=QuaternionAlgebra(Rationals,3,-2);       [127X[104X
    [4X[28X<algebra-with-one of dimension 4 over Rationals>[128X[104X
    [4X[25Xgap>[125X [27XIsRationalQuaternionAlgebraADivisionRing(A);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfRationalQuaternionAlgebra(A);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X7.6 [33X[0;0YFunctions involving Cyclic Algebras[133X[101X
  
  [33X[0;0YCyclic  algebras  are  represented  in [5XWedderga[105X as lists of length 3, in the
  form  [10X[F,K,[c]][110X,  which  stands  for a cyclic crossed product algebra of the
  form  [10X(K/F,c)[110X,  with [10XK/F[110X a cyclic galois extension of abelian number fields,
  and  [10Xc[110X  an  element of [10XF[110X determining the factor set. Schur indices of cyclic
  algebras can be determined through the solution of inverse norm equations in
  general.  Though  currently  algorithms  for  this are not available in [5XGAP[105X,
  algorithms  have  been  implemented  in  some  computational  number  theory
  software systems such as [5XPARI/GP[105X.[133X
  
  [33X[0;0YThe  functions in this section allow one to convert cyclotomic algebras into
  cyclic  algebras (or possibly as tensor products of two cyclic algebras), to
  convert generalized quaternion algebras into quadratic algebras (i.e. cyclic
  algebras  for a Galois extension of degree 2), to convert quadratic algebras
  into  generalized  quaternion  algebras, and to convert cyclic algebras into
  cyclic cyclotomic algebras, whenever possible.[133X
  
  [1X7.6-1 DecomposeCyclotomicAlgebra[101X
  
  [33X[1;0Y[29X[2XDecomposeCyclotomicAlgebra[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YTwo  lists,  each representing a cyclic algebra over the center of
            [22XA[122X,  whose  tensor  product is isomorphic to the cyclotomic algebra
            described by [22XA[122X.[133X
  
  [33X[0;0YThe  input  must be list representing a cyclotomic algebra of length 5 whose
  Galois  group has [10X2[110X generators. This is represented in [5XWedderga[105X as a list of
  the  form  [10X[r,F,n,[[m1,k1,l1],[m2,k2,l2]],[[d]]][110X.  (Longer  presentations of
  cyclotomic  algebras do occur in [5XWedderga[105X output. Currently we do not have a
  general decomposition algorithm for them.)[133X
  
  [33X[0;0YFor  these  algebras,  the  extension [10XF(E(n))/F[110X is the tensor product of two
  disjoint  extensions  [10XK1[110X  and  [10XK2[110X  of  [10XF[110X, and the program adjusts one of the
  factor  sets  (corresponding  to  [22Xl1[122X  or [22Xl2[122X) so that [22Xd[122X becomes [10X0[110X. After this
  adjustment, the algebra is then the tensor product of cyclic algebras of the
  form  [10X[F,K1,[c1]][110X and [10X[F,K2,[c2]][110X provided [10Xc1[110X and [10Xc2[110X lie in [10XF[110X. If the latter
  condition  is not satisfied, the string [21Xfails[121X is appended to the output. (We
  have  not  encountered this problem among the group algebras of small groups
  we have tested so far.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(96,35);[127X[104X
    [4X[28X<pc group of size 96 with 6 generators>[128X[104X
    [4X[25Xgap>[125X [27XW:=WedderburnDecompositionInfo(GroupRing(Rationals,G));;[127X[104X
    [4X[25Xgap>[125X [27XSize(W);[127X[104X
    [4X[28X12[128X[104X
    [4X[25Xgap>[125X [27XA:=W[12];[127X[104X
    [4X[28X[ 1, NF(8,[ 1, 7 ]), 24, [ [ 2, 7, 12 ], [ 2, 17, 9 ] ], [ [ 3 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XDecomposeCyclotomicAlgebra(A);[127X[104X
    [4X[28X[ [ NF(8,[ 1, 7 ]), CF(8), [ -1 ] ], [128X[104X
    [4X[28X  [ NF(8,[ 1, 7 ]), NF(24,[ 1, 7 ]), [ -2-E(8)+E(8)^3 ] ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.6-2 ConvertCyclicAlgToCyclicCyclotomicAlg[101X
  
  [33X[1;0Y[29X[2XConvertCyclicAlgToCyclicCyclotomicAlg[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA  list  of  the  form  [10X[1,F,n,[a,b,c]][110X  which represents a cyclic
            cyclotomic algebra.[133X
  
  [33X[0;0YThis function converts a cyclic algebra given by a list [10X[F,F(E(n)),[E(n)^c]][110X
  to   an  isomorphic  cyclic  cyclotomic  algebra  represented  as  the  list
  [10X[1,F,n,[a,b,c]][110X.[133X
  
  [33X[1;0Y[29X[2XConvertQuadraticAlgToQuaternionAlg[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA generalized quaternion algebra.[133X
  
  [33X[0;0YThe  input  should be a list of the form [10X[F,K,[c]][110X where the field [10XK[110X must be
  obtained  by  adjoining  the  square root of a nonsquare element [10Xd[110X of [10XF[110X. The
  function   then   returns   the   quaternion   algebra   given   in  [9XGAP[109X  by
  [10XQuaternionAlgebra(F,d,c);[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA:=[NF(24,[1,11]),CF(24),[-1]];[127X[104X
    [4X[28X[ NF(24,[ 1, 11 ]), CF(24), [ -1 ] ][128X[104X
    [4X[25Xgap>[125X [27XConvertCyclicAlgToCyclicCyclotomicAlg(A);[127X[104X
    [4X[28X[ 1, NF(24,[ 1, 11 ]), 24, [ 2, 11, 12 ] ][128X[104X
    [4X[25Xgap>[125X [27XLocalIndicesOfCyclicCyclotomicAlgebra(last);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XConvertQuadraticAlgToQuaternionAlg(A);[127X[104X
    [4X[28X<algebra-with-one of dimension 4 over NF(24,[ 1, 11 ])>[128X[104X
    [4X[25Xgap>[125X [27Xb:=Basis(last);[127X[104X
    [4X[28XCanonicalBasis( <algebra-with-one of dimension 4 over NF(24,[ 1, 11 ])> )[128X[104X
    [4X[25Xgap>[125X [27Xb[1]^2; b[2]^2; b[3]^2; b[4]^2;[127X[104X
    [4X[28Xe[128X[104X
    [4X[28X(-1)*e[128X[104X
    [4X[28X(-1)*e[128X[104X
    [4X[28X(-1)*e[128X[104X
    [4X[25Xgap>[125X [27Xb[2]*b[3]+b[3]*b[2];[127X[104X
    [4X[28X0*e[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X7.6-3 ConvertQuaternionAlgToQuadraticAlg[101X
  
  [33X[1;0Y[29X[2XConvertQuaternionAlgToQuadraticAlg[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA  list  of  the  form [10X[F,K,[c]][110X representing a cyclic algebra for
            which the degree of the extension [10XK/F[110X is [10X2[110X.[133X
  
  [33X[0;0YThe  input  must  be  a quaternion algebra whose center is an abelian number
  field  [22XF[122X, presented as in the output from [10XQuaternionAlgebra( F, a, b )[110X, with
  [22Xa[122X,  [22Xb[122X  in  [22XF[122X.  It  returns  a  list [10X[F,F(ER(a)),[b]][110X representing the cyclic
  algebra isomorphic to [22XA[122X.[133X
  
  [33X[1;0Y[29X[2XConvertCyclicCyclotomicAlgToCyclicAlg[102X( [3XA[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA list of the form [10X[F,K,[c]][110X.[133X
  
  [33X[0;0YThe input should be a list [10X[r,F,n,[a,b,c]][110X representing a matrix ring over a
  cyclic    cyclotomic    algebra.    The    function    returns    the   list
  [10X[F,F(E(n)),[E(n)^c]][110X,  which  represents  a  cyclic  algebra  that is Morita
  equivalent to the given cyclic cyclotomic algebra.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA:=QuaternionAlgebra(CF(5),-3,-1);[127X[104X
    [4X[28X<algebra-with-one of dimension 4 over CF(5)>[128X[104X
    [4X[25Xgap>[125X [27XConvertQuaternionAlgToQuadraticAlg(A);[127X[104X
    [4X[28X[ CF(5), CF(15), [ -1 ] ][128X[104X
    [4X[25Xgap>[125X [27XConvertCyclicAlgToCyclicCyclotomicAlg(last);[127X[104X
    [4X[28X[ 1, CF(5), 30, [ 2, 11, 15 ] ][128X[104X
    [4X[25Xgap>[125X [27XSchurIndex(last);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XConvertCyclicCyclotomicAlgToCyclicAlg(last2);[127X[104X
    [4X[28X[ 1, [ CF(5), CF(15), [ -1 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XConvertQuadraticAlgToQuaternionAlg(last[2]);[127X[104X
    [4X[28X<algebra-with-one of dimension 4 over CF(5)>[128X[104X
    [4X[25Xgap>[125X [27Xb:=Basis(last); b[1]^2; b[2]^2; b[3]^2; b[4]^2;[127X[104X
    [4X[28XBasis( <algebra-with-one of dimension 4 over CF(5)>, ... )[128X[104X
    [4X[28Xe[128X[104X
    [4X[28X(-3)*e[128X[104X
    [4X[28X(-1)*e[128X[104X
    [4X[28X(-3)*e[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
