#### D.10.1.9 decodeSV

Procedure from library `brnoeth.lib` (see brnoeth_lib).

Usage:
  decodeSV( y, K ); y a row-matrix and K a list

Return:
  a codeword (row-matrix) if possible, resp. the 0-matrix (of size 1) if decoding is impossible.
  For decoding the basic (Skorobogatov-Vladut) decoding algorithm is applied.

Note:
  The list_expression should be the output K of the procedure `prepSV`.
  The matrix_expression should be a (1 x n)-matrix, where n = ncols(K[1]).
  The decoding may fail if the number of errors is greater than the correction capacity of the algorithm.

Example:

    LIB "brnoeth.lib";
    int plevel=printlevel;
    printlevel=-1;
    ring s=2,(x,y),lp;
    list HC=Adj_div(x3+y2+y);
    ==> The genus of the curve is 1
    HC=NSplaces(1..2,HC);
    HC=extcurve(2,HC);
    ==> Total number of rational places : NrRatPl = 9
    def ER=HC[1][4];
    setring ER;
    intvec G=5;      // the rational divisor G = 5*HC[3][1]
    intvec D=2..9;   // D = sum of the rational places no. 2..9 over F_4
    // construct the corresp. residual AG code of type [8,3,>=5] over F_4:
    matrix C=AGcode_Omega(G,D,HC);
    ==> Vector basis successfully computed
    // we can correct 1 error and the genus is 1, thus F must have degree 2
    // and support disjoint from that of D
    intvec F=2;
    list SV=prepSV(G,D,F,HC);
    ==> Vector basis successfully computed
    ==> Vector basis successfully computed
    ==> Vector basis successfully computed
    // now we produce 1 error on the zero-codeword :
    matrix y[1][8];
    y[1,3]=a;
    // and then we decode :
    print(decodeSV(y,SV));
    ==> 0,0,0,0,0,0,0,0
    printlevel=plevel;

See also: AGcode_Omega; extcurve; prepSV.

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