|
D.10.1.12 sys_code
Procedure from library brnoeth.lib (see brnoeth_lib).
- Usage:
- sys_code(C); C is a matrix of constants
- Return:
- list L with:
| L[1] is the generator matrix in standard form of an equivalent code,
L[2] is the parity check matrix in standard form of such code,
L[3] is an intvec which represents the needed permutation.
|
- Note:
- Computes a systematic code which is equivalent to the given one.
The input should be a matrix of numbers.
The output has to be interpreted as follows: if the input was
the generator matrix of an AG code then one should apply the
permutation L[3] to the divisor D of rational points by means
of permute_L(D,L[3]); before continuing to work with the
code (for instance, if you want to use the systematic encoding
together with a decoding algorithm).
Example:
| LIB "brnoeth.lib";
ring s=3,T,lp;
matrix C[2][5]=0,1,0,1,1,0,1,0,0,1;
print(C);
==> 0,1,0,1,1,
==> 0,1,0,0,1
list L=sys_code(C);
L[3];
==> 2,4,3,1,5
// here is the generator matrix in standard form
print(L[1]);
==> 1,0,0,0,1,
==> 0,1,0,0,0
// here is the control matrix in standard form
print(L[2]);
==> 0, 0,1,0,0,
==> 0, 0,0,1,0,
==> -1,0,0,0,1
// we can check that both codes are dual to each other
print(L[1]*transpose(L[2]));
==> 0,0,0,
==> 0,0,0
| See also:
AGcode_Omega;
permute_L;
prepSV.
|