next up previous
Next: V-filtration and spectral numbers Up: Effective Construction of Algebraic Previous: Computing a basis for

Example

The above algorithms are implemented in the library brnoeth.lib of SINGULAR, together with procedures for coding and decoding and are distributed with version 2.0. To compute an example, we first have to load the library.
 
    LIB "brnoeth.lib";
Let $ C$ be the absolutely irreducible plane projective curve given by the affine equation $ y^2+y+x^5\in \mathbf{F}_2[x,y]$. We compute all places up to degree $ 4$, by
 
    ring r=2,(x,y),dp;
    poly f=y2+y+x5;
    list CURVE=Adj_div(f);
    ==> The genus of the curve is 2.
    CURVE=NSplaces(3,CURVE); // places up to degree 4=1+3
We can consider the curve as being defined over $ \mathbf{F}_{16}$ in order to get many rational places.

    CURVE=extcurve(4,CURVE);
    ==> Total number of rational places : NrRatPl = 33
The degree of the computed (conjugacy classes of) places is displayed by

    list L=CURVE[3]; L;
    ==>  [1]: 1,1   [2]: 1,2   [3]: 1,3   
    ==>  [4]: 2,1   
    ==>  [5]: 3,1   [6]: 3,2
    ==>  [7]: 4,1   [8]: 4,2   [9]: 4,3  [10]: 4,4    
    ==> [11]: 4,5  [12]: 4,6  [13]: 4,7
In particular, besides the $ 33=3*1+1*2+7*4$ rational places over $ \mathbf{F}_{16}$ there are $ 2$ closed places $ [Q_5],[Q_6]$ of degree $ 3$. The adjunction divisor is given by $ 8Q_1$, where $ Q_1$ is the unique (rational) point on $ {\widetilde{C}}$ mapping to the singular point $ (0\!\!\::\!\!\:1\!\!\::\!\!\:0)$. This can be read off as follows:

    CURVE[4];    // the mult's d_Q at L[1],L[2],... 
                 // (zeroes omitted) 
    ==> 8 
    def r1=CURVE[5][1][1];
    setring r1;
    POINTS[1];   // coordinates of the base point of L[1]
    ==> [1]:  0  [2]:  1   [3]:  0
    PARAMETRIZATIONS[1];  // parametrization of L[1]
    ==> [1]:  _[1]=t3+t8
              _[2]=t5+t15
        // exact up to order:
        [2]:  8,10
We construct the evaluating AG-code $ C_L(G,D,{\widetilde{C}})$ where all rational points of $ {\widetilde{C}}$ appear in the support of $ D$ and $ G=[Q_5]+[Q_6]$.

    intvec G=0,0,0,0,1,1,0,0,0,0,0,0,0;
    intvec D=1..33;
    def R=CURVE[1][4];
    setring R;
    matrix CODE=AGcode_L(G,D,CURVE);
The echelon form of the resulting $ 5\times 33$-matrix is

\begin{displaymath}\left(
\begin{array}{p{8pt}p{8pt}p{8pt}p{8pt}p{8pt}p{8pt}cccc...
...a^{7}& a^{6}& 1& a^{7}& a^{6}& a^{4}& a^{6}
\end{array}\right.
\end{displaymath}

\begin{displaymath}\left.
\begin{array}{cccccccccccccccccccccccccccccccccccc}
a...
...a^{6}&
a^{4}& 1& a^{4}& 1& a^{7}& a^{6}
\end{array}\right).
\end{displaymath}

Note that the constructed code $ C_L(G,D,{\widetilde{C}})$ has block length 33, dimension 5 and designed distance $ 27=33-\deg G$. On the other hand, the first row corresponds to a word of weight 27, whence the designed distance coincides with the minimal distance. As a result, we get that $ C_L(G,D,{\widetilde{C}})$ is a $ [33,5,27]$-code. Note that the parameters, that is, the information rate $ R=5/33$ and the relative minimum distance $ \delta=27/33$, lie above the Gilbert-Varshamov bound.


next up previous
Next: V-filtration and spectral numbers Up: Effective Construction of Algebraic Previous: Computing a basis for
Christoph Lossen
2001-03-21