Enumeration of isometry classes of linear codes

#### Enumeration of isometry classes of linear codes

In [8] it is demonstrated how to enumerate isometry classes of linear (n,k) codes over a finite field GF(q). These isometry classes can be interpreted as orbits of functions from {1,...,n} into GF(q)k \ {0} under the action of GLk(q)´GF(q)* wr Sn. In this article it is shown that the main task for enumerating these classes is the determination of the cycle index of PGLk(q) acting on the projective space PGk-1(q). The numbers Tnkq introduced in [8] are the numbers of orbits of functions under the group action introduced above. The number of classes of linear (n,k) codes is Snkq which can be evaluated from Tnkq and Tn,k-1,q. Furthermore it is interesting to enumerate indecomposable linear codes, the number of which will be indicated as Rnkq.

When investigating injective functions only we are computing the numbers bar (T)nkq, bar (S)nkq and bar (R)nkq.

When extending the range to GF(q)k we can determine Wnkq, the number of classes of linear codes, where 0-columns are allowed.

These numbers can be computed with the following routines (from `code.c`).

```INT T_nkq_maxgrad(n,k,q,f)        OP n,k,q,f;
INT Tbar_nkq_maxgrad(n,k,q,f)     OP n,k,q,f;
INT S_nkq_maxgrad(n,k,q,f)        OP n,k,q,f;
INT Sbar_nkq_maxgrad(n,k,q,f)     OP n,k,q,f;
INT W_nkq_maxgrad(n,k,q,f)        OP n,k,q,f;
```
In all these cases `f` is a POLYNOMial in one indeterminate of degree less than or equal to `n` (INTEGER), where the coefficient of xi is the number Tikq, bar (T)ikq, Sikq, bar (S)ikq, Wikq. Furthermore `k` and `q` are INTEGER objects.

In order to compute tables of numbers of indecomposable codes you can use the routines

```INT all_codes(n,k,q,d,e)        OP n,k,q,d,e;
INT all_inj_codes(n,k,q,d,e)    OP n,k,q,d,e;
```
`n`, `k` and `q` are INTEGER objects indicating the maximal value of n and the values of k and q. `d` and `e` are n´k matrices of Snkq and Rnkq for `all_codes` and bar (S)nkq and bar (R)nkq for `all_inj_codes`. For 0£i<`S_M_HI(d)` and 0£j<`S_M_LI(d)` the entry `S_M_IJ(d,i,j)` represents the number Si+1,j+1,`q`.

Furthermore there are some routines asking for the right input and computing the desired numbers (classes of codes):

```INT co_T_nkq();
INT co_Tbar_nkq();
INT co_T_nkq_erweitert();
```
can be used for computing the numbers Tnkq, bar (T)nkq and the numbers of orbits of functions with range GF(q)k (needed for the computation of Wnkq).

```INT co_S_nkq();
INT co_Sbar_nkq();
INT co_W_nkq();
```
can be used for computing the numbers Snkq, bar (S)nkq and Wnkq.

```INT co_all_codes();
INT co_all_inj_codes();
```
are computing tables of Snkq and Rnkq (bar (S)nkq and bar (R)nkq respectively).

For some computations it could be interesting to save the numbers Tnkq or bar (T)nkq into a file. This can be done by using

```INT co_T_nkq_file();
INT co_Tbar_nkq_file();
```
The first routine writes a file called `alldat`k.q the second a file called `dat`k.q.

These files are used by

```INT co_S_nkq_file();
INT co_Sbar_nkq_file();
```
for the computation of Snkq or bar (S)nkq. More precisely for the computation of Snkq the files `alldat`k.q and `alldat`(k-1).q are used. When applying these routines you must take care that the parameter for n may not exceed the parameter for n used in `co_T_nkq_file()` or `co_Tbar_nkq_file()`.

In the same way these files are used for computing tables of Snkq and Rnkq (or bar (S)nkq and bar (R)nkq respectively) with

```INT co_all_codes_file();
INT co_all_inj_codes_file();
```

The total number of all k-dimensional subspaces of GF(q)n can be computed with:

```INT number_of_subspaces(n,k,q,d)   OP n,k,q,d;
INT co_number_of_subspaces();
```
In the first routine `n` `k` and `q` are the 3 parameters and `d` is the result, in the second form you are asked to input the right parameters.
harald.fripertinger@kfunigraz.ac.at,
last changed: November 19, 2001

 Enumeration of isometry classes of linear codes