#### 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.

User manual for Singular version 4-0-3, 2016, generated by texi2html.