[1X6 [33X[0;0YInterfaces to Other Data Formats for Character Tables[133X[101X [33X[0;0YThis chapter describes data formats for character tables that can be read or created by [5XGAP[105X. Currently these are the formats used by[133X [30X [33X[0;6Ythe [5XCAS[105X system (see[14 X6.1[114X),[133X [30X [33X[0;6Ythe [5XMOC[105X system (see[14 X6.2[114X),[133X [30X [33X[0;6Y[5XGAP[105X 3 (see[14 X6.3[114X),[133X [30X [33X[0;6Ythe so-called [13XCambridge format[113X (see[14 X6.4[114X), and[133X [30X [33X[0;6Ythe [5XMAGMA[105X system (see[14 X6.5[114X).[133X [1X6.1 [33X[0;0YInterface to the [5XCAS[105X[101X[1X System[133X[101X [33X[0;0YThe interface to [5XCAS[105X (see [NPP84]) is thought just for printing the [5XCAS[105X data to a file. The function [2XCASString[102X ([14X6.1-1[114X) is available mainly in order to document the data format. [13XReading[113X [5XCAS[105X tables is not supported; note that the tables contained in the [5XCAS[105X Character Table Library have been migrated to [5XGAP[105X using a few [10Xsed[110X scripts and [10XC[110X programs.[133X [1X6.1-1 CASString[101X [33X[1;0Y[29X[2XCASString[102X( [3Xtbl[103X ) [32X function[133X [33X[0;0Yis a string that encodes the [5XCAS[105X library format of the character table [3Xtbl[103X. This string can be printed to a file which then can be read into the [5XCAS[105X system using its [10Xget[110X command (see [NPP84]).[133X [33X[0;0YThe used line length is the first entry in the list returned by [2XSizeScreen[102X ([14XReference: SizeScreen[114X).[133X [33X[0;0YOnly the known values of the following attributes are used. [2XClassParameters[102X ([14XReference: ClassParameters[114X) (for partitions only), [2XComputedClassFusions[102X ([14XReference: ComputedClassFusions[114X), [2XComputedIndicators[102X ([14XReference: ComputedIndicators[114X), [2XComputedPowerMaps[102X ([14XReference: ComputedPowerMaps[114X), [2XComputedPrimeBlocks[102X ([14XReference: ComputedPrimeBlockss[114X), [2XIdentifier[102X ([14XReference: Identifier for character tables[114X), [2XInfoText[102X ([14XReference: InfoText[114X), [2XIrr[102X ([14XReference: Irr[114X), [2XOrdersClassRepresentatives[102X ([14XReference: OrdersClassRepresentatives[114X), [2XSize[102X ([14XReference: Size[114X), [2XSizesCentralizers[102X ([14XReference: SizesCentralisers[114X).[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XPrint( CASString( CharacterTable( "Cyclic", 2 ) ), "\n" );[127X[104X [4X[28X'C2'[128X[104X [4X[28X00/00/00. 00.00.00.[128X[104X [4X[28X(2,2,0,2,-1,0)[128X[104X [4X[28Xtext:[128X[104X [4X[28X(#computed using generic character table for cyclic groups#),[128X[104X [4X[28Xorder=2,[128X[104X [4X[28Xcentralizers:([128X[104X [4X[28X2,2[128X[104X [4X[28X),[128X[104X [4X[28Xreps:([128X[104X [4X[28X1,2[128X[104X [4X[28X),[128X[104X [4X[28Xpowermap:2([128X[104X [4X[28X1,1[128X[104X [4X[28X),[128X[104X [4X[28Xcharacters:[128X[104X [4X[28X(1,1[128X[104X [4X[28X,0:0)[128X[104X [4X[28X(1,-1[128X[104X [4X[28X,0:0);[128X[104X [4X[28X/// converted from GAP[128X[104X [4X[32X[104X [1X6.2 [33X[0;0YInterface to the [5XMOC[105X[101X[1X System[133X[101X [33X[0;0YThe interface to [5XMOC[105X (see [HJLP]) can be used to print [5XMOC[105X input. Additionally it provides an alternative representation of (virtual) characters.[133X [33X[0;0YThe [5XMOC[105X 3 code of a [22X5[122X digit number in [5XMOC[105X 2 code is given by the following list. (Note that the code must contain only lower case letters.)[133X ABCD for 0ABCD a for 10000 b for 10001 k for 20001 c for 10002 l for 20002 d for 10003 m for 20003 e for 10004 n for 20004 f for 10005 o for 20005 g for 10006 p for 20006 h for 10007 q for 20007 i for 10008 r for 20008 j for 10009 s for 20009 tAB for 100AB uAB for 200AB vABCD for 1ABCD wABCD for 2ABCD yABC for 30ABC z for 31000 [33X[0;0Y[13XNote[113X that any long number in [5XMOC[105X 2 format is divided into packages of length [22X4[122X, the first (!) one filled with leading zeros if necessary. Such a number with decimals [22Xd_1, d_2, ..., d_{4n+k}[122X is the sequence [22X0 d_1 d_2 d_3 d_4 ... 0 d_{4n-3} d_{4n-2} d_{4n-1} d_4n d_{4n+1} ... d_{4n+k}[122X where [22X0 ≤ k ≤ 3[122X, the first digit of [22Xx[122X is [22X1[122X if the number is positive and [22X2[122X if the number is negative, and then follow [22X(4-k)[122X zeros.[133X [33X[0;0YDetails about the [5XMOC[105X system are explained in [HJLP], a brief description can be found in [LP91].[133X [1X6.2-1 MAKElb11[101X [33X[1;0Y[29X[2XMAKElb11[102X( [3Xlistofns[103X ) [32X function[133X [33X[0;0YFor a list [3Xlistofns[103X of positive integers, [2XMAKElb11[102X prints field information for all number fields with conductor in this list.[133X [33X[0;0YThe output of [2XMAKElb11[102X is used by the [5XMOC[105X system; Calling [10XMAKElb11( [ 3 .. 189 ] )[110X will print something very similar to Richard Parker's file [11Xlb11[111X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XMAKElb11( [ 3, 4 ] );[127X[104X [4X[28X 3 2 0 1 0[128X[104X [4X[28X 4 2 0 1 0[128X[104X [4X[32X[104X [1X6.2-2 MOCTable[101X [33X[1;0Y[29X[2XMOCTable[102X( [3Xgaptbl[103X[, [3Xbasicset[103X] ) [32X function[133X [33X[0;0Y[2XMOCTable[102X returns the [5XMOC[105X table record of the [5XGAP[105X character table [3Xgaptbl[103X.[133X [33X[0;0YThe one argument version can be used only if [3Xgaptbl[103X is an ordinary ([22XG.0[122X) table. For Brauer ([22XG.p[122X) tables, one has to specify a basic set [3Xbasicset[103X of ordinary irreducibles. [3Xbasicset[103X must then be a list of positions of the basic set characters in the [2XIrr[102X ([14XReference: Irr[114X) list of the ordinary table of [3Xgaptbl[103X.[133X [33X[0;0YThe result is a record that contains the information of [3Xgaptbl[103X in a format similar to the [5XMOC[105X 3 format. This record can, e. g., easily be printed out or be used to print out characters using [2XMOCString[102X ([14X6.2-3[114X).[133X [33X[0;0YThe components of the result are[133X [8X[10Xidentifier[110X[8X[108X [33X[0;6Ythe string [10XMOCTable( [110X[22Xname[122X[10X )[110X where [22Xname[122X is the [2XIdentifier[102X ([14XReference: Identifier for character tables[114X) value of [3Xgaptbl[103X,[133X [8X[10XGAPtbl[110X[8X[108X [33X[0;6Y[3Xgaptbl[103X,[133X [8X[10Xprime[110X[8X[108X [33X[0;6Ythe characteristic of the field (label [10X30105[110X in [5XMOC[105X),[133X [8X[10Xcentralizers[110X[8X[108X [33X[0;6Ycentralizer orders for cyclic subgroups (label [10X30130[110X)[133X [8X[10Xorders[110X[8X[108X [33X[0;6Yelement orders for cyclic subgroups (label [10X30140[110X)[133X [8X[10Xfieldbases[110X[8X[108X [33X[0;6Yat position [22Xi[122X the Parker basis of the number field generated by the character values of the [22Xi[122X-th cyclic subgroup. The length of [10Xfieldbases[110X is equal to the value of label [10X30110[110X in [5XMOC[105X.[133X [8X[10Xcycsubgps[110X[8X[108X [33X[0;6Y[10Xcycsubgps[i] = j[110X means that class [10Xi[110X of the [5XGAP[105X table belongs to the [10Xj[110X-th cyclic subgroup of the [5XGAP[105X table,[133X [8X[10Xrepcycsub[110X[8X[108X [33X[0;6Y[10Xrepcycsub[j] = i[110X means that class [10Xi[110X of the [5XGAP[105X table is the representative of the [10Xj[110X-th cyclic subgroup of the [5XGAP[105X table. [13XNote[113X that the representatives of [5XGAP[105X table and [5XMOC[105X table need not agree![133X [8X[10Xgalconjinfo[110X[8X[108X [33X[0;6Ya list [22X[ r_1, c_1, r_2, c_2, ..., r_n, c_n ][122X which means that the [22Xi[122X-th class of the [5XGAP[105X table is the [22Xc_i[122X-th conjugate of the representative of the [22Xr_i[122X-th cyclic subgroup on the [5XMOC[105X table. (This is used to translate back to [5XGAP[105X format, stored under label [10X30160[110X)[133X [8X[10X30170[110X[8X[108X [33X[0;6Y(power maps) for each cyclic subgroup (except the trivial one) and each prime divisor of the representative order store four values, namely the number of the subgroup, the power, the number of the cyclic subgroup containing the image, and the power to which the representative must be raised to yield the image class. (This is used only to construct the [10X30230[110X power map/embedding information.) In [10X30170[110X only a list of lists (one for each cyclic subgroup) of all these values is stored, it will not be used by [5XGAP[105X.[133X [8X[10Xtensinfo[110X[8X[108X [33X[0;6Ytensor product information, used to compute the coefficients of the Parker base for tensor products of characters (label [10X30210[110X in [5XMOC[105X). For a field with vector space basis [22X(v_1, v_2, ..., v_n)[122X, the tensor product information of a cyclic subgroup in [5XMOC[105X (as computed by [10Xfct[110X) is either [22X1[122X (for rational classes) or a sequence[133X [24X[33X[0;6Yn x_1,1 y_1,1 z_1,1 x_1,2 y_1,2 z_1,2 ... x_1,m_1 y_1,m_1 z_1,m_1 0 x_2,1 y_2,1 z_2,1 x_2,2 y_2,2 z_2,2 ... x_2,m_2 y_2,m_2 z_2,m_2 0 ... z_n,m_n 0[133X[124X [33X[0;6Ywhich means that the coefficient of [22Xv_k[122X in the product[133X [24X[33X[0;6Y( ∑_i=1^n a_i v_i ) ( ∑_j=1^n b_j v_j )[133X[124X [33X[0;6Yis equal to[133X [24X[33X[0;6Y∑_i=1^m_k x_k,i a_y_k,i} b_z_k,i} .[133X[124X [33X[0;6YOn a [5XMOC[105X table in [5XGAP[105X, the [10Xtensinfo[110X component is a list of lists, each containing exactly the sequence mentioned above.[133X [8X[10Xinvmap[110X[8X[108X [33X[0;6Yinverse map to compute complex conjugate characters, label [10X30220[110X in [5XMOC[105X.[133X [8X[10Xpowerinfo[110X[8X[108X [33X[0;6Yfield embeddings for [22Xp[122X-th symmetrizations, [22Xp[122X a prime integer not larger than the largest element order, label [10X30230[110X in [5XMOC[105X.[133X [8X[10X30900[110X[8X[108X [33X[0;6Ybasic set of restricted ordinary irreducibles in the case of nonzero characteristic, all ordinary irreducibles otherwise.[133X [1X6.2-3 MOCString[101X [33X[1;0Y[29X[2XMOCString[102X( [3Xmoctbl[103X[, [3Xchars[103X] ) [32X function[133X [33X[0;0YLet [3Xmoctbl[103X be a [5XMOC[105X table record, as returned by [2XMOCTable[102X ([14X6.2-2[114X). [2XMOCString[102X returns a string describing the [5XMOC[105X 3 format of [3Xmoctbl[103X.[133X [33X[0;0YIf a second argument [3Xchars[103X is specified, it must be a list of [5XMOC[105X format characters as returned by [2XMOCChars[102X ([14X6.2-6[114X). In this case, these characters are stored under label [10X30900[110X. If the second argument is missing then the basic set of ordinary irreducibles is stored under this label.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xmoca5:= MOCTable( CharacterTable( "A5" ) );[127X[104X [4X[28Xrec( 30170 := [ [ ], [ 2, 2, 1, 1 ], [ 3, 3, 1, 1 ], [ 4, 5, 1, 1 ] ][128X[104X [4X[28X , [128X[104X [4X[28X 30900 := [ [ 1, 1, 1, 1, 0 ], [ 3, -1, 0, 0, -1 ], [128X[104X [4X[28X [ 3, -1, 0, 1, 1 ], [ 4, 0, 1, -1, 0 ], [ 5, 1, -1, 0, 0 ] ], [128X[104X [4X[28X GAPtbl := CharacterTable( "A5" ), centralizers := [ 60, 4, 3, 5 ], [128X[104X [4X[28X cycsubgps := [ 1, 2, 3, 4, 4 ], [128X[104X [4X[28X fieldbases := [128X[104X [4X[28X [ CanonicalBasis( Rationals ), CanonicalBasis( Rationals ), [128X[104X [4X[28X CanonicalBasis( Rationals ), [128X[104X [4X[28X Basis( NF(5,[ 1, 4 ]), [ 1, E(5)+E(5)^4 ] ) ], fields := [ ], [128X[104X [4X[28X galconjinfo := [ 1, 1, 2, 1, 3, 1, 4, 1, 4, 2 ], [128X[104X [4X[28X identifier := "MOCTable(A5)", [128X[104X [4X[28X invmap := [ [ 1, 1, 0 ], [ 1, 2, 0 ], [ 1, 3, 0 ], [128X[104X [4X[28X [ 1, 4, 0, 1, 5, 0 ] ], orders := [ 1, 2, 3, 5 ], [128X[104X [4X[28X powerinfo := [128X[104X [4X[28X [ , [128X[104X [4X[28X [ [ 1, 1, 0 ], [ 1, 1, 0 ], [ 1, 3, 0 ], [128X[104X [4X[28X [ 1, 4, -1, 5, 0, -1, 5, 0 ] ], [128X[104X [4X[28X [ [ 1, 1, 0 ], [ 1, 2, 0 ], [ 1, 1, 0 ], [128X[104X [4X[28X [ 1, 4, -1, 5, 0, -1, 5, 0 ] ],, [128X[104X [4X[28X [ [ 1, 1, 0 ], [ 1, 2, 0 ], [ 1, 3, 0 ], [ 1, 1, 0, 0 ] ] ], [128X[104X [4X[28X prime := 0, repcycsub := [ 1, 2, 3, 4 ], [128X[104X [4X[28X tensinfo := [128X[104X [4X[28X [ [ 1 ], [ 1 ], [ 1 ], [128X[104X [4X[28X [ 2, 1, 1, 1, 1, 2, 2, 0, 1, 1, 2, 1, 2, 1, -1, 2, 2, 0 ] ] )[128X[104X [4X[25Xgap>[125X [27Xstr:= MOCString( moca5 );;[127X[104X [4X[25Xgap>[125X [27Xstr{[1..68]};[127X[104X [4X[28X"y100y105ay110fey130t60edfy140bcdfy150bbbfcabbey160bbcbdbebecy170ccbb"[128X[104X [4X[25Xgap>[125X [27Xmoca5mod3:= MOCTable( CharacterTable( "A5" ) mod 3, [ 1 .. 4 ] );;[127X[104X [4X[25Xgap>[125X [27XMOCString( moca5mod3 ){ [ 1 .. 68 ] };[127X[104X [4X[28X"y100y105dy110edy130t60efy140bcfy150bbfcabbey160bbcbdbdcy170ccbbdfbby"[128X[104X [4X[32X[104X [1X6.2-4 ScanMOC[101X [33X[1;0Y[29X[2XScanMOC[102X( [3Xlist[103X ) [32X function[133X [33X[0;0Yreturns a record containing the information encoded in the list [3Xlist[103X. The components of the result are the labels that occur in [3Xlist[103X. If [3Xlist[103X is in [5XMOC[105X 2 format (10000-format), the names of components are 30000-numbers; if it is in [5XMOC[105X 3 format the names of components have [10XyABC[110X-format.[133X [1X6.2-5 GAPChars[101X [33X[1;0Y[29X[2XGAPChars[102X( [3Xtbl[103X, [3Xmocchars[103X ) [32X function[133X [33X[0;0YLet [3Xtbl[103X be a character table or a [5XMOC[105X table record, and [3Xmocchars[103X be either a list of [5XMOC[105X format characters (as returned by [2XMOCChars[102X ([14X6.2-6[114X)) or a list of positive integers such as a record component encoding characters, in a record produced by [2XScanMOC[102X ([14X6.2-4[114X).[133X [33X[0;0Y[2XGAPChars[102X returns translations of [3Xmocchars[103X to [5XGAP[105X character values lists.[133X [1X6.2-6 MOCChars[101X [33X[1;0Y[29X[2XMOCChars[102X( [3Xtbl[103X, [3Xgapchars[103X ) [32X function[133X [33X[0;0YLet [3Xtbl[103X be a character table or a [5XMOC[105X table record, and [3Xgapchars[103X be a list of ([5XGAP[105X format) characters. [2XMOCChars[102X returns translations of [3Xgapchars[103X to [5XMOC[105X format.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xscan:= ScanMOC( str );[127X[104X [4X[28Xrec( y050 := [ 5, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 1, 0, 0 ], [128X[104X [4X[28X y105 := [ 0 ], y110 := [ 5, 4 ], y130 := [ 60, 4, 3, 5 ], [128X[104X [4X[28X y140 := [ 1, 2, 3, 5 ], y150 := [ 1, 1, 1, 5, 2, 0, 1, 1, 4 ], [128X[104X [4X[28X y160 := [ 1, 1, 2, 1, 3, 1, 4, 1, 4, 2 ], [128X[104X [4X[28X y170 := [ 2, 2, 1, 1, 3, 3, 1, 1, 4, 5, 1, 1 ], [128X[104X [4X[28X y210 := [ 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 0, 1, 1, 2, 1, 2, 1, -1, 2, [128X[104X [4X[28X 2, 0 ], y220 := [ 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 4, 0, 1, 5, 0 ],[128X[104X [4X[28X y230 := [ 2, 1, 1, 0, 1, 1, 0, 1, 3, 0, 1, 4, -1, 5, 0, -1, 5, 0 ], [128X[104X [4X[28X y900 := [ 1, 1, 1, 1, 0, 3, -1, 0, 0, -1, 3, -1, 0, 1, 1, 4, 0, 1, [128X[104X [4X[28X -1, 0, 5, 1, -1, 0, 0 ] )[128X[104X [4X[25Xgap>[125X [27Xgapchars:= GAPChars( moca5, scan.y900 );[127X[104X [4X[28X[ [ 1, 1, 1, 1, 1 ], [ 3, -1, 0, -E(5)-E(5)^4, -E(5)^2-E(5)^3 ], [128X[104X [4X[28X [ 3, -1, 0, -E(5)^2-E(5)^3, -E(5)-E(5)^4 ], [ 4, 0, 1, -1, -1 ], [128X[104X [4X[28X [ 5, 1, -1, 0, 0 ] ][128X[104X [4X[25Xgap>[125X [27Xmocchars:= MOCChars( moca5, gapchars );[127X[104X [4X[28X[ [ 1, 1, 1, 1, 0 ], [ 3, -1, 0, 0, -1 ], [ 3, -1, 0, 1, 1 ], [128X[104X [4X[28X [ 4, 0, 1, -1, 0 ], [ 5, 1, -1, 0, 0 ] ][128X[104X [4X[25Xgap>[125X [27XConcatenation( mocchars ) = scan.y900;[127X[104X [4X[28Xtrue[128X[104X [4X[32X[104X [1X6.3 [33X[0;0YInterface to [5XGAP[105X[101X[1X 3[133X[101X [33X[0;0YThe following functions are used to read and write character tables in [5XGAP[105X 3 format.[133X [1X6.3-1 GAP3CharacterTableScan[101X [33X[1;0Y[29X[2XGAP3CharacterTableScan[102X( [3Xstring[103X ) [32X function[133X [33X[0;0YLet [3Xstring[103X be a string that contains the output of the [5XGAP[105X 3 function [10XPrintCharTable[110X. In other words, [3Xstring[103X describes a [5XGAP[105X record whose components define an ordinary character table object in [5XGAP[105X 3. [2XGAP3CharacterTableScan[102X returns the corresponding [5XGAP[105X 4 character table object.[133X [33X[0;0YThe supported record components are given by the list [2XGAP3CharacterTableData[102X ([14X6.3-3[114X).[133X [1X6.3-2 GAP3CharacterTableString[101X [33X[1;0Y[29X[2XGAP3CharacterTableString[102X( [3Xtbl[103X ) [32X function[133X [33X[0;0YFor an ordinary character table [3Xtbl[103X, [2XGAP3CharacterTableString[102X returns a string that when read into [5XGAP[105X 3 evaluates to a character table corresponding to [3Xtbl[103X. A similar format is printed by the [5XGAP[105X 3 function [10XPrintCharTable[110X.[133X [33X[0;0YThe supported record components are given by the list [2XGAP3CharacterTableData[102X ([14X6.3-3[114X).[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xtbl:= CharacterTable( "Alternating", 5 );;[127X[104X [4X[25Xgap>[125X [27Xstr:= GAP3CharacterTableString( tbl );;[127X[104X [4X[25Xgap>[125X [27XPrint( str );[127X[104X [4X[28Xrec([128X[104X [4X[28Xcentralizers := [ 60, 4, 3, 5, 5 ],[128X[104X [4X[28Xfusions := [ rec( map := [ 1, 3, 4, 7, 7 ], name := "Sym(5)" ) ],[128X[104X [4X[28Xidentifier := "Alt(5)",[128X[104X [4X[28Xirreducibles := [[128X[104X [4X[28X[ 1, 1, 1, 1, 1 ],[128X[104X [4X[28X[ 4, 0, 1, -1, -1 ],[128X[104X [4X[28X[ 5, 1, -1, 0, 0 ],[128X[104X [4X[28X[ 3, -1, 0, -E(5)-E(5)^4, -E(5)^2-E(5)^3 ],[128X[104X [4X[28X[ 3, -1, 0, -E(5)^2-E(5)^3, -E(5)-E(5)^4 ][128X[104X [4X[28X],[128X[104X [4X[28Xorders := [ 1, 2, 3, 5, 5 ],[128X[104X [4X[28Xpowermap := [ , [ 1, 1, 3, 5, 4 ], [ 1, 2, 1, 5, 4 ], , [ 1, 2, 3, 1, \[128X[104X [4X[28X1 ] ],[128X[104X [4X[28Xsize := 60,[128X[104X [4X[28Xtext := "computed using generic character table for alternating groups\[128X[104X [4X[28X",[128X[104X [4X[28Xoperations := CharTableOps )[128X[104X [4X[25Xgap>[125X [27Xscan:= GAP3CharacterTableScan( str );[127X[104X [4X[28XCharacterTable( "Alt(5)" )[128X[104X [4X[25Xgap>[125X [27XTransformingPermutationsCharacterTables( tbl, scan );[127X[104X [4X[28Xrec( columns := (), group := Group([ (4,5) ]), rows := () )[128X[104X [4X[32X[104X [1X6.3-3 GAP3CharacterTableData[101X [33X[1;0Y[29X[2XGAP3CharacterTableData[102X [32X global variable[133X [33X[0;0YThis is a list of pairs, the first entry being the name of a component in a [5XGAP[105X 3 character table and the second entry being the corresponding attribute name in [5XGAP[105X 4. The variable is used by [2XGAP3CharacterTableScan[102X ([14X6.3-1[114X) and [2XGAP3CharacterTableString[102X ([14X6.3-2[114X).[133X [1X6.4 [33X[0;0YInterface to the Cambridge Format[133X[101X [33X[0;0YThe following functions deal with the so-called Cambridge format, in which the source data of the character tables in the [5XAtlas[105X of Finite Groups [CCN+85] and in the [5XAtlas[105X of Brauer Characters [JLPW95] are stored. Each such table is stored on a file of its own. The line length is at most [22X78[122X, and each item of the table starts in a new line, behind one of the following prefixes.[133X [8X[10X#23[110X[8X[108X [33X[0;6Ya description and the name(s) of the simple group[133X [8X[10X#7[110X[8X[108X [33X[0;6Yintegers describing the column widths[133X [8X[10X#9[110X[8X[108X [33X[0;6Ythe symbols [10X;[110X and [10X@[110X, denoting columns between tables and columns that belong to conjugacy classes, respectively[133X [8X[10X#1[110X[8X[108X [33X[0;6Ythe symbol [10X|[110X in columns between tables, and centralizer orders otherwise[133X [8X[10X#2[110X[8X[108X [33X[0;6Ythe symbols [10Xp[110X (in the first column only), [10Xpower[110X (in the second column only, which belongs to the class of the identity element), [10X|[110X in other columns between tables, and descriptions of the powers of classes otherwise[133X [8X[10X#3[110X[8X[108X [33X[0;6Ythe symbols [10Xp'[110X (in the first column only), [10Xpart[110X (in the second column only, which belongs to the class of the identity element), [10X|[110X in other columns between tables, and descriptions of the [22Xp[122X-prime parts of classes otherwise[133X [8X[10X#4[110X[8X[108X [33X[0;6Ythe symbols [10Xind[110X and [10Xfus[110X in columns between tables, and class names otherwise[133X [8X[10X#5[110X[8X[108X [33X[0;6Yeither [10X|[110X or strings composed from the symbols [10X+[110X, [10X-[110X, [10Xo[110X, and integers in columns where the lines starting with [10X#4[110X contain [10Xind[110X; the symbols [10X:[110X, [10X.[110X, [10X?[110X in columns where these lines contain [10Xfus[110X; character values or [10X|[110X otherwise[133X [8X[10X#6[110X[8X[108X [33X[0;6Ythe symbols [10X|[110X, [10Xind[110X, [10Xand[110X, and [10Xfus[110X in columns between tables; the symbol [10X|[110X and element orders of preimage classes in downward extensions otherwise[133X [8X[10X#8[110X[8X[108X [33X[0;6Ythe last line of the data, may contain the date of the last change[133X [8X[10X#C[110X[8X[108X [33X[0;6Ycomments.[133X [1X6.4-1 CambridgeMaps[101X [33X[1;0Y[29X[2XCambridgeMaps[102X( [3Xtbl[103X ) [32X function[133X [33X[0;0YFor a character table [3Xtbl[103X, [2XCambridgeMaps[102X returns a record with the following components.[133X [8X[10Xnames[110X[8X[108X [33X[0;6Ya list of strings denoting class names,[133X [8X[10Xpower[110X[8X[108X [33X[0;6Ya list of strings, the [22Xi[122X-th entry encodes the [22Xp[122X-th powers of the [22Xi[122X-th class, for all prime divisors [22Xp[122X of the group order,[133X [8X[10Xprime[110X[8X[108X [33X[0;6Ya list of strings, the [22Xi[122X-th entry encodes the [22Xp[122X-prime parts of the [22Xi[122X-th class, for all prime divisors [22Xp[122X of the group order.[133X [33X[0;0YThe meaning of the entries of the lists is defined in [CCN+85, Chapter 7, Sections 3–5]).[133X [33X[0;0Y[2XCambridgeMaps[102X is used for example by [2XDisplay[102X ([14XReference: Display for a character table[114X) in the case that the [10Xpowermap[110X option has the value [10X"ATLAS"[110X.[133X [33X[0;0YNote that the value of the [10Xnames[110X component may differ from the class names of the character table shown in the [5XAtlas[105X of Finite Groups; an example is the character table of the group [22XJ_1[122X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XCambridgeMaps( CharacterTable( "A5" ) );[127X[104X [4X[28Xrec( names := [ "1A", "2A", "3A", "5A", "B*" ], [128X[104X [4X[28X power := [ "", "A", "A", "A", "A" ], [128X[104X [4X[28X prime := [ "", "A", "A", "A", "A" ] )[128X[104X [4X[25Xgap>[125X [27XCambridgeMaps( CharacterTable( "A5" ) mod 2 );[127X[104X [4X[28Xrec( names := [ "1A", "3A", "5A", "B*" ], [128X[104X [4X[28X power := [ "", "A", "A", "A" ], prime := [ "", "A", "A", "A" ] )[128X[104X [4X[32X[104X [1X6.4-2 StringOfCambridgeFormat[101X [33X[1;0Y[29X[2XStringOfCambridgeFormat[102X( [3Xtblnames[103X[, [3Xp[103X] ) [32X function[133X [33X[0;0YLet [3Xtblnames[103X be a matrix of identifiers of ordinary character tables, which describe the bicyclic extensions of a simple group from the [5XAtlas[105X of Finite Groups. The class fusions between the character tables must be stored on the tables.[133X [33X[0;0YIf the required information is available then [2XStringOfCambridgeFormat[102X returns a string that encodes an approximation of the Cambridge format file for the simple group in question (whose identifier occurs in the upper left corner of [3Xtblnames[103X). Otherwise, that is, if some character table or class fusion is missing, [9Xfail[109X is returned.[133X [33X[0;0YIf a prime integer [3Xp[103X is given as a second argument then the result describes [3Xp[103X-modular character tables, otherwise the ordinary character tables are described by the result.[133X [33X[0;0YDifferences to the original format may occur for irrational character values; the descriptions of these values have been chosen deliberately for the original files, it is not obvious how to compute these descriptions from the character tables in question.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xstr:= StringOfCambridgeFormat( [ [ "A5", "A5.2" ],[127X[104X [4X[25X>[125X [27X [ "2.A5", "2.A5.2" ] ] );;[127X[104X [4X[25Xgap>[125X [27XPrint( str );[127X[104X [4X[28X#23 ? A5[128X[104X [4X[28X#7 4 4 4 4 4 4 4 4 4 4 4 [128X[104X [4X[28X#9 ; @ @ @ @ @ ; ; @ @ @ [128X[104X [4X[28X#1 | 60 4 3 5 5 | | 6 2 3 [128X[104X [4X[28X#2 p power A A A A | | A A AB [128X[104X [4X[28X#3 p' part A A A A | | A A AB [128X[104X [4X[28X#4 ind 1A 2A 3A 5A B* fus ind 2B 4A 6A [128X[104X [4X[28X#5 + 1 1 1 1 1 : ++ 1 1 1 [128X[104X [4X[28X#5 + 3 -1 0 -b5 * . + 0 0 0 [128X[104X [4X[28X#5 + 3 -1 0 * -b5 . | | | | [128X[104X [4X[28X#5 + 4 0 1 -1 -1 : ++ 2 0 -1 [128X[104X [4X[28X#5 + 5 1 -1 0 0 : ++ 1 -1 1 [128X[104X [4X[28X#6 ind 1 4 3 5 5 fus ind 2 8 6 [128X[104X [4X[28X#6 | 2 | 6 10 10 | | | 8 6 [128X[104X [4X[28X#5 - 2 0 -1 b5 * . - 0 0 0 [128X[104X [4X[28X#5 - 2 0 -1 * b5 . | | | | [128X[104X [4X[28X#5 - 4 0 1 -1 -1 : oo 0 0 i3 [128X[104X [4X[28X#5 - 6 0 0 1 1 : oo 0 i2 0 [128X[104X [4X[28X#8[128X[104X [4X[25Xgap>[125X [27Xstr:= StringOfCambridgeFormat( [ [ "A5", "A5.2" ],[127X[104X [4X[25X>[125X [27X [ "2.A5", "2.A5.2" ] ], 3 );;[127X[104X [4X[25Xgap>[125X [27XPrint( str );[127X[104X [4X[28X#23 A5 (Mod 3)[128X[104X [4X[28X#7 4 4 4 4 4 4 4 4 4 [128X[104X [4X[28X#9 ; @ @ @ @ ; ; @ @ [128X[104X [4X[28X#1 | 60 4 5 5 | | 6 2 [128X[104X [4X[28X#2 p power A A A | | A A [128X[104X [4X[28X#3 p' part A A A | | A A [128X[104X [4X[28X#4 ind 1A 2A 5A B* fus ind 2B 4A [128X[104X [4X[28X#5 + 1 1 1 1 : ++ 1 1 [128X[104X [4X[28X#5 + 3 -1 -b5 * . + 0 0 [128X[104X [4X[28X#5 + 3 -1 * -b5 . | | | [128X[104X [4X[28X#5 + 4 0 -1 -1 : ++ 2 0 [128X[104X [4X[28X#6 ind 1 4 5 5 fus ind 2 8 [128X[104X [4X[28X#6 | 2 | 10 10 | | | 8 [128X[104X [4X[28X#5 - 2 0 b5 * . - 0 0 [128X[104X [4X[28X#5 - 2 0 * b5 . | | | [128X[104X [4X[28X#5 - 6 0 1 1 : oo 0 i2 [128X[104X [4X[28X#8[128X[104X [4X[25Xgap>[125X [27XStringOfCambridgeFormat( [ [ "L10(11)" ] ], 0 );[127X[104X [4X[28Xfail[128X[104X [4X[32X[104X [33X[0;0YThe global option [10XOmitDashedRows[110X can be used to control whether the two-line description of [21Xdashed[121X row portions (concerning tables of, e. g., [22X2'.Sz(8)[122X) are omitted (value [9Xtrue[109X) or shown (value [9Xfalse[109X). The default is to show information about dashed row portions in the case of ordinary tables, and to omit this information for Brauer tables.[133X [1X6.5 [33X[0;0YInterface to the [5XMAGMA[105X[101X[1X System[133X[101X [33X[0;0YThis interface is intended to convert character tables given in [5XMAGMA[105X's (see [CP96]) display format into [5XGAP[105X character tables.[133X [33X[0;0YThe function [2XBosmaBase[102X ([14X6.5-1[114X) is used for the translation of irrational values; this function may be of interest independent of the conversion of character tables.[133X [1X6.5-1 BosmaBase[101X [33X[1;0Y[29X[2XBosmaBase[102X( [3Xn[103X ) [32X function[133X [33X[0;0YFor a positive integer [3Xn[103X that is not congruent to [22X2[122X modulo [22X4[122X, [2XBosmaBase[102X returns the list of exponents [22Xi[122X for which [10XE([3Xn[103X[10X)^[110X[22Xi[122X belongs to the canonical basis of the [3Xn[103X-th cyclotomic field that is defined in [Bos90, Section 5].[133X [33X[0;0YAs a set, this basis is defined as follows. Let [22XP[122X denote the set of prime divisors of [3Xn[103X and [3Xn[103X [22X= ∏_{p ∈ P} n_p[122X. Let [22Xe_l =[122X [10XE[110X[22X(l)[122X for any positive integer [22Xl[122X, and [22X{ e_{m_1}^j }_{j ∈ J} ⊗ { e_{m_2}^k }_{k ∈ K} = { e_{m_1}^j ⋅ e_{m_2}^k }_{j ∈ J, k ∈ K}[122X for any positive integers [22Xm_1[122X, [22Xm_2[122X. (This notation is the same as the one used in the description of [2XZumbroichBase[102X ([14XReference: ZumbroichBase[114X).)[133X [33X[0;0YThen the basis is[133X [24X[33X[0;6YB_n = ⨂_{p ∈ P} B_{n_p}[133X[124X [33X[0;0Ywhere[133X [24X[33X[0;6YB_{n_p} = { e_{n_p}^k; 0 ≤ k ≤ φ(n_p)-1 };[133X[124X [33X[0;0Yhere [22X[122φX denotes Euler's function, see [2XPhi[102X ([14XReference: Phi[114X).[133X [33X[0;0Y[22XB_n[122X consists of roots of unity, it is an integral basis (that is, exactly the integral elements in [22Xℚ_n[122X have integral coefficients w.r.t.[22 XB_n[122X, cf.[2 XIsIntegralCyclotomic[102X ([14XReference: IsIntegralCyclotomic[114X)), and for any divisor [22Xm[122X of [3Xn[103X that is not congruent to [22X2[122X modulo [22X4[122X, [22XB_m[122X is a subset of [22XB_n[122X.[133X [33X[0;0YNote that the list [22Xl[122X, say, that is returned by [2XBosmaBase[102X is in general not a set. The ordering of the elements in [22Xl[122X fits to the coefficient lists for irrational values used by [5XMAGMA[105X's display format.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xb:= BosmaBase( 8 );[127X[104X [4X[28X[ 0, 1, 2, 3 ][128X[104X [4X[25Xgap>[125X [27Xb:= Basis( CF(8), List( b, i -> E(8)^i ) );[127X[104X [4X[28XBasis( CF(8), [ 1, E(8), E(4), E(8)^3 ] )[128X[104X [4X[25Xgap>[125X [27XCoefficients( b, Sqrt(2) );[127X[104X [4X[28X[ 0, 1, 0, -1 ][128X[104X [4X[25Xgap>[125X [27XCoefficients( b, Sqrt(-2) );[127X[104X [4X[28X[ 0, 1, 0, 1 ][128X[104X [4X[25Xgap>[125X [27Xb:= BosmaBase( 15 );[127X[104X [4X[28X[ 0, 5, 3, 8, 6, 11, 9, 14 ][128X[104X [4X[25Xgap>[125X [27Xb:= List( b, i -> E(15)^i );[127X[104X [4X[28X[ 1, E(3), E(5), E(15)^8, E(5)^2, E(15)^11, E(5)^3, E(15)^14 ][128X[104X [4X[25Xgap>[125X [27XCoefficients( Basis( CF(15), b ), EB(15) );[127X[104X [4X[28X[ -1, -1, 0, 0, -1, -2, -1, -2 ][128X[104X [4X[25Xgap>[125X [27XBosmaBase( 48 );[127X[104X [4X[28X[ 0, 3, 6, 9, 12, 15, 18, 21, 16, 19, 22, 25, 28, 31, 34, 37 ][128X[104X [4X[32X[104X [1X6.5-2 GAPTableOfMagmaFile[101X [33X[1;0Y[29X[2XGAPTableOfMagmaFile[102X( [3Xfile[103X, [3Xidentifier[103X ) [32X function[133X [33X[1;0Y[29X[2XGAPTableOfMagmaFile[102X( [3Xstr[103X, [3Xidentifier[103X[, [3X"string"[103X] ) [32X function[133X [33X[0;0YIn the first form, let [3Xfile[103X be the name of a file that contains a character table in [5XMAGMA[105X's display format, and [3Xidentifier[103X be a string. [2XGAPTableOfMagmaFile[102X returns the corresponding [5XGAP[105X character table, with [2XIdentifier[102X ([14XReference: Identifier for tables of marks[114X) value [3Xidentifier[103X.[133X [33X[0;0YIn the second form, [3Xstr[103X must be a string that describes the contents of a file as described for the first form, and the third argument must be the string [10X"string"[110X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xtmpdir:= DirectoryTemporary();;[127X[104X [4X[25Xgap>[125X [27Xfile:= Filename( tmpdir, "magmatable" );;[127X[104X [4X[25Xgap>[125X [27Xstr:= "\[127X[104X [4X[25X>[125X [27XCharacter Table of Group G\n\[127X[104X [4X[25X>[125X [27X--------------------------\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27X---------------------------\n\[127X[104X [4X[25X>[125X [27XClass | 1 2 3 4 5\n\[127X[104X [4X[25X>[125X [27XSize | 1 15 20 12 12\n\[127X[104X [4X[25X>[125X [27XOrder | 1 2 3 5 5\n\[127X[104X [4X[25X>[125X [27X---------------------------\n\[127X[104X [4X[25X>[125X [27Xp = 2 1 1 3 5 4\n\[127X[104X [4X[25X>[125X [27Xp = 3 1 2 1 5 4\n\[127X[104X [4X[25X>[125X [27Xp = 5 1 2 3 1 1\n\[127X[104X [4X[25X>[125X [27X---------------------------\n\[127X[104X [4X[25X>[125X [27XX.1 + 1 1 1 1 1\n\[127X[104X [4X[25X>[125X [27XX.2 + 3 -1 0 Z1 Z1#2\n\[127X[104X [4X[25X>[125X [27XX.3 + 3 -1 0 Z1#2 Z1\n\[127X[104X [4X[25X>[125X [27XX.4 + 4 0 1 -1 -1\n\[127X[104X [4X[25X>[125X [27XX.5 + 5 1 -1 0 0\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27XExplanation of Character Value Symbols\n\[127X[104X [4X[25X>[125X [27X--------------------------------------\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27X# denotes algebraic conjugation, that is,\n\[127X[104X [4X[25X>[125X [27X#k indicates replacing the root of unity w by w^k\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27XZ1 = (CyclotomicField(5: Sparse := true)) ! [\n\[127X[104X [4X[25X>[125X [27XRationalField() | 1, 0, 1, 1 ]\n\[127X[104X [4X[25X>[125X [27X";;[127X[104X [4X[25Xgap>[125X [27XFileString( file, str );;[127X[104X [4X[25Xgap>[125X [27Xtbl:= GAPTableOfMagmaFile( file, "MagmaA5" );;[127X[104X [4X[25Xgap>[125X [27XDisplay( tbl );[127X[104X [4X[28XMagmaA5[128X[104X [4X[28X[128X[104X [4X[28X 2 2 2 . . .[128X[104X [4X[28X 3 1 . 1 . .[128X[104X [4X[28X 5 1 . . 1 1[128X[104X [4X[28X[128X[104X [4X[28X 1a 2a 3a 5a 5b[128X[104X [4X[28X 2P 1a 1a 3a 5b 5a[128X[104X [4X[28X 3P 1a 2a 1a 5b 5a[128X[104X [4X[28X 5P 1a 2a 3a 1a 1a[128X[104X [4X[28X[128X[104X [4X[28XX.1 1 1 1 1 1[128X[104X [4X[28XX.2 3 -1 . A *A[128X[104X [4X[28XX.3 3 -1 . *A A[128X[104X [4X[28XX.4 4 . 1 -1 -1[128X[104X [4X[28XX.5 5 1 -1 . .[128X[104X [4X[28X[128X[104X [4X[28XA = -E(5)-E(5)^4[128X[104X [4X[28X = (1-Sqrt(5))/2 = -b5[128X[104X [4X[25Xgap>[125X [27Xtbl2:= GAPTableOfMagmaFile( str, "MagmaA5", "string" );;[127X[104X [4X[25Xgap>[125X [27XIrr( tbl ) = Irr( tbl2 );[127X[104X [4X[28Xtrue[128X[104X [4X[25Xgap>[125X [27Xstr:= "\[127X[104X [4X[25X>[125X [27XCharacter Table of Group G\n\[127X[104X [4X[25X>[125X [27X--------------------------\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27X------------------------------\n\[127X[104X [4X[25X>[125X [27XClass | 1 2 3 4 5 6\n\[127X[104X [4X[25X>[125X [27XSize | 1 1 1 1 1 1\n\[127X[104X [4X[25X>[125X [27XOrder | 1 2 3 3 6 6\n\[127X[104X [4X[25X>[125X [27X------------------------------\n\[127X[104X [4X[25X>[125X [27Xp = 2 1 1 4 3 3 4\n\[127X[104X [4X[25X>[125X [27Xp = 3 1 2 1 1 2 2\n\[127X[104X [4X[25X>[125X [27X------------------------------\n\[127X[104X [4X[25X>[125X [27XX.1 + 1 1 1 1 1 1\n\[127X[104X [4X[25X>[125X [27XX.2 + 1 -1 1 1 -1 -1\n\[127X[104X [4X[25X>[125X [27XX.3 0 1 1 J-1-J-1-J J\n\[127X[104X [4X[25X>[125X [27XX.4 0 1 -1 J-1-J 1+J -J\n\[127X[104X [4X[25X>[125X [27XX.5 0 1 1-1-J J J-1-J\n\[127X[104X [4X[25X>[125X [27XX.6 0 1 -1-1-J J -J 1+J\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27XExplanation of Character Value Symbols\n\[127X[104X [4X[25X>[125X [27X--------------------------------------\n\[127X[104X [4X[25X>[125X [27X\n\[127X[104X [4X[25X>[125X [27XJ = RootOfUnity(3)\n\[127X[104X [4X[25X>[125X [27X";;[127X[104X [4X[25Xgap>[125X [27XFileString( file, str );;[127X[104X [4X[25Xgap>[125X [27Xtbl:= GAPTableOfMagmaFile( file, "MagmaC6" );;[127X[104X [4X[25Xgap>[125X [27XDisplay( tbl );[127X[104X [4X[28XMagmaC6[128X[104X [4X[28X[128X[104X [4X[28X 2 1 1 1 1 1 1[128X[104X [4X[28X 3 1 1 1 1 1 1[128X[104X [4X[28X[128X[104X [4X[28X 1a 2a 3a 3b 6a 6b[128X[104X [4X[28X 2P 1a 1a 3b 3a 3a 3b[128X[104X [4X[28X 3P 1a 2a 1a 1a 2a 2a[128X[104X [4X[28X[128X[104X [4X[28XX.1 1 1 1 1 1 1[128X[104X [4X[28XX.2 1 -1 1 1 -1 -1[128X[104X [4X[28XX.3 1 1 A /A /A A[128X[104X [4X[28XX.4 1 -1 A /A -/A -A[128X[104X [4X[28XX.5 1 1 /A A A /A[128X[104X [4X[28XX.6 1 -1 /A A -A -/A[128X[104X [4X[28X[128X[104X [4X[28XA = E(3)[128X[104X [4X[28X = (-1+Sqrt(-3))/2 = b3[128X[104X [4X[32X[104X [33X[0;0YThe [5XMAGMA[105X output for the above two examples is obtained by the following commands.[133X [4X[32X Example [32X[104X [4X[25X>[125X [27XG1 := Alt(5);[127X[104X [4X[25X>[125X [27XCT1 := CharacterTable(G1);[127X[104X [4X[25X>[125X [27XCT1;[127X[104X [4X[25X>[125X [27XG2:= CyclicGroup(6);[127X[104X [4X[25X>[125X [27XCT2:= CharacterTable(G2);[127X[104X [4X[25X>[125X [27XCT2;[127X[104X [4X[32X[104X [1X6.5-3 CharacterTableComputedByMagma[101X [33X[1;0Y[29X[2XCharacterTableComputedByMagma[102X( [3XG[103X, [3Xidentifier[103X ) [32X function[133X [33X[0;0YFor a permutation group [3XG[103X and a string [3Xidentifier[103X, [2XCharacterTableComputedByMagma[102X calls the [5XMAGMA[105X system for computing the character table of [3XG[103X, and converts the output into [5XGAP[105X format (see [2XGAPTableOfMagmaFile[102X ([14X6.5-2[114X)). The returned character table has the [2XIdentifier[102X ([14XReference: Identifier for tables of marks[114X) value [3Xidentifier[103X.[133X [33X[0;0YIf the [5XMAGMA[105X system is not available then [9Xfail[109X is returned. The availability of [5XMAGMA[105X is determined by calling [5XMAGMA[105X where the path for this call is given by the user preference [10XMagmaPath[110X of the package [5XCTblLib[105X; if the value of this preference is empty or if [5XMAGMA[105X cannot be called via this path then [5XMAGMA[105X is regarded as not available.[133X [33X[0;0YIf the attribute [2XConjugacyClasses[102X ([14XReference: ConjugacyClasses attribute[114X) of [3XG[103X is set before the call of [2XCharacterTableComputedByMagma[102X then the columns of the returned character table fit to the conjugacy classes that are stored in [3XG[103X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xif CTblLib.IsMagmaAvailable() then[127X[104X [4X[25X>[125X [27X g:= MathieuGroup( 24 );[127X[104X [4X[25X>[125X [27X ccl:= ConjugacyClasses( g );[127X[104X [4X[25X>[125X [27X t:= CharacterTableComputedByMagma( g, "testM24" );[127X[104X [4X[25X>[125X [27X if t = fail then[127X[104X [4X[25X>[125X [27X Print( "#E Magma did not compute a character table.\n" );[127X[104X [4X[25X>[125X [27X elif ( not HasConjugacyClasses( t ) ) or[127X[104X [4X[25X>[125X [27X ( ConjugacyClasses( t ) <> ccl ) then[127X[104X [4X[25X>[125X [27X Print( "#E The conjugacy classes do not fit.\n" );[127X[104X [4X[25X>[125X [27X elif TransformingPermutationsCharacterTables( t,[127X[104X [4X[25X>[125X [27X CharacterTable( "M24" ) ) = fail then[127X[104X [4X[25X>[125X [27X Print( "#E Inconsistency of character tables?\n" );[127X[104X [4X[25X>[125X [27X fi;[127X[104X [4X[25X>[125X [27X fi;[127X[104X [4X[32X[104X
Generated by dwww version 1.15 on Sun Jun 23 03:46:32 CEST 2024.