| | | **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
*GL*_{k}(q)´GF(q)* wr S_{n}. In this article it is shown that
the main task for enumerating these classes is the determination of
the cycle index of *PGL*_{k}(q) acting on the projective space
*PG*_{k-1}(q).
The numbers *T*_{nkq} 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 *S*_{nkq} which
can be evaluated from *T*_{nkq} and *T*_{n,k-1,q}.
Furthermore it is interesting to enumerate indecomposable linear
codes, the number of which will be indicated as *R*_{nkq}.
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 *W*_{nkq},
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 *x*^{i} is the number
*T*_{ikq}, *bar (T)*_{ikq}, *S*_{ikq}, *bar (S)*_{ikq}, *W*_{ikq}.
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
*S*_{nkq} and *R*_{nkq} 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 *S*_{i+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 *T*_{nkq}, *bar (T)*_{nkq}
and the numbers of orbits of functions with range *GF(q)*^{k} (needed
for the computation of *W*_{nkq}).

INT co_S_nkq();
INT co_Sbar_nkq();
INT co_W_nkq();

can be used for computing the numbers *S*_{nkq}, *bar (S)*_{nkq} and
*W*_{nkq}.

INT co_all_codes();
INT co_all_inj_codes();

are computing tables of *S*_{nkq} and *R*_{nkq} (*bar (S)*_{nkq} and
*bar (R)*_{nkq} respectively).
For some computations it could be interesting to save the numbers
*T*_{nkq} 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 *S*_{nkq} or *bar (S)*_{nkq}.
More precisely for the computation of *S*_{nkq} 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
*S*_{nkq} and *R*_{nkq} (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** |