´

### compute_KM(group_label, t, k);

Computes the Kramer-Mesner matrix for a given group and for integer parameters t and k (with 0 <= t < k <= d, where d is the degree of the permutation group). The result is written on a file (called KM-file) whose name is generated from the input parameters in the following way:

KM_[group]_t[t]_k[k].txt

where [group] is the label of the group and [t] and [k] stand for the values of t and k, respectively.

Return Values:
This function returns the name of the corresponding KM-file as a string

Example:
let g_label be "PGGL_2_32" from Example 1.

```gap> km := compute_KM(g_label, 5, 6);
discreta_batch compute_KM discreta_batch_output.g discreta_tmp PGGL_2_32 PGGL_\
2_32 5 6 1
"KM_PGGL_2_32_t5_k6.txt"
gap>
```
Computes the Kramer-Mesner matrix for t=5, k=6 and the previously constructed group "PGGL_2_32". The KM-file which is created has the name KM_PGGL_2_32_t5_k6.txt. This file looks as follows: KM_PGGL_2_32_t5_k6.txt This file contains the following information:
• a header containing general information about the group and the parameters of the design. Generators for the group are listed.
```% this file:    KM_PGGL_2_32_t5_k6.txt
% group:        PGGL_2_32
% group:        PGGL_2_32
% order:        163680
% degree:       33
% # generators: 5
% (3 4 6 10 18 7 12 22 15 28 19 9 16 30 31 33 29 21 5 8 14 26 23 17 32 27 25 13 24 11 20)
% (3 20 11 24 13 25 27 32 17 23 26 14 8 5 21 29 33 31 30 16 9 19 28 15 22 12 7 18 10 6 4)
% (2 3)(4 5)(6 7)(8 9)(10 11)(12 13)(14 15)(16 17)(18 19)(20 21)(22 23)(24 25)(26 27)(28 29)(30 31)(32 33)
% (1 3)(4 31)(5 21)(6 24)(7 10)(8 15)(9 17)(11 25)(12 19)(13 26)(14 16)(18 27)(20 30)(22 29)(23 33)(28 32)
% (4 6 18 15 29)(5 7 19 14 28)(8 22 31 24 27)(9 23 30 25 26)(10 12 16 32 21)(11 13 17 33 20)
% t, k:
% 5 6
```
• The Kramer-Mesner matrix:
```% m, n:
3 13
5 5 5 5 5 1 1 1 0 0 0 0 0
0 4 4 8 0 0 0 0 4 4 4 0 0
2 1 4 3 2 1 1 1 2 5 2 3 1
```
• finally, the file contains some coded data, for example generators for the group
```GENERATORS
ASCII 202
572050600<12102040608000:0<0>0012141618100:1<1>1027090305000?011;0=07191315170?1
12;1=160001210204130514021005031608170918061009071:0<1;0=1<0:100=0;1>002?01201>1
<111?160121000302050407060908000;0:0=0<0?0>0110100312151417161918100;1:1=1<1?1>1
120207601230201000?15181:0?01170910031:10180>090;1<000>150=11260;0=0211002614140
<171600<1210203060700021316171<0=0011100<1=10212?0>0;0:000?1>1;1:190805040009181
5141
ASCIIEND
```
• representatives for the i-orbits
```SET-REPRESENTATIVES
ASCII 240
572070207=1020>8101020108;20101010:3102010200>2010101020572010200<30101010203057
2010200<401010102030:3402030200>5010101020>030407020500010101020304050200>501010
1020>030408020=08;2060101010102030407001200<601010102030>04050602060001010102030
4050:00720601010103020304050>0200860101010203040<170<02060100010102030407071200>
601010102070304070;12000601010102030407083>020601010101020304050>1200<6010101020
30>040506120600010101020304050210720601010103020304080>0200860101010203040008012

ASCIIEND
```
• stabilizer orders of all orbits
```STABILIZER-ORDERS
ASCII 40
372051109120?7063106=91063>1==4050==4010==2020==1010==2050==5050==2010==20200<60

ASCIIEND
```
• stabilizer orders of k-orbits in ASCII:
```STABILIZER-ORDER-K-SETS
2 2 1 1 2 5 5 5 2 1 2 2 6
```
• And coded KM-matrices:
```KM-MATRICES
ASCII 81
572060;0<=101010=11012;0101<10101002;0<=101010=110?1;0101<101010>1;0<=3010107010
405041;007=03010105010505050501010108?4040801?4040400820104030201010001020502030
10
ASCIIEND
```
• then, there may be an additional version of the KM-matrix which has its rows and columns permuted in some specific way. This is the so called "TDO-form" of the KM-matrix.
```%
% TDO decomposition:
3 13
8 4 4 4 0 0 4 4 0 0 0 0 0
5 5 5 0 5 5 0 0 0 1 1 1 0
3 4 1 5 2 2 2 2 3 1 1 1 1

%
% row decomposition:
% 1 1 1
%
% column decomposition:
% 1 1 1 1 2 2 1 3 1
%
% row permutation:
% 2 1 3
%
% col permutation:
% 5 3 2 1 6 10 11 12 7 4 8 9 13
```
The decompositions of rows and columns give hints about possible KM-matrix automorphisms.

### get_KM_matrix(km, t, k);

Retrieves the KM-matrix for given t and k from the KM-file. t and k must not be the same as when the KM-file was computed but we must have 0 <= t < k <= k0 (where k0 is the value of k when the KM-file was created).

Example:

```gap> M := get_KM_matrix(km, 5, 6);
discreta_batch get_KM_matrix KM_PGGL_2_32_t5_k6.txt discreta_batch_output.g di\
screta_tmp 5 6
[ [ 5, 5, 5, 5, 5, 1, 1, 1, 0, 0, 0, 0, 0 ],
[ 0, 4, 4, 8, 0, 0, 0, 0, 4, 4, 4, 0, 0 ],
[ 2, 1, 4, 3, 2, 1, 1, 1, 2, 5, 2, 3, 1 ] ]
gap>
```

Back to the DISCRETA-GAP interface
Back to the typical GAP-session
Last updated: July 26, 1999, Evi Haberberger

University of Bayreuth -