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