Home Online Manual
Top
Back: dual_code
Forward: permute_L
FastBack: Visualization
FastForward: decodegb_lib
Up: brnoeth_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

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.