source: git/Tst/Short/brnoeth_s.tst @ bf5c59f

spielwiese
Last change on this file since bf5c59f was b2d5b9, checked in by Hans Schönemann <hannes@…>, 20 years ago
*hannes; updated from 2-0 git-svn-id: file:///usr/local/Singular/svn/trunk@7042 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.0 KB
Line 
1LIB "tst.lib";
2tst_init();
3tst_ignore("CVS ID $Id: brnoeth_s.tst,v 1.2 2004-02-12 14:19:40 Singular Exp $");
4
5// tst_status();
6
7
8// killall();
9
10LIB "brnoeth.lib";
11
12list L=list();
13L[1]="a";
14L[2]="b";
15L[3]="c";
16L[4]="d";
17intvec P=1,3,4,2;
18permute_L(L,P);
19kill(L,P);
20
21ring s=2,T,lp;
22matrix G[3][7]=1,0,1,0,1,0,1,0,1,1,0,0,1,1,0,0,0,1,1,1,1;
23print(G);
24matrix H=dual_code(G);
25print(H);
26kill(s);
27
28ring s=3,T,lp;
29matrix C[2][5]=0,1,0,1,1,0,1,0,0,1;
30print(C);
31list L=sys_code(C);
32print(L[1]);
33print(L[2]);
34L[3];
35print(L[1]*transpose(L[2]));
36kill(s);
37
38ring s=2,(x,y),lp;
39ideal I=x4+x,y4+y;
40list L=closed_points(I);
41L;
42I=x8+x,y8+y;
43L=closed_points(I);
44L;
45I=x16+x,y16+y;
46L=closed_points(I);
47L;
48kill(s);
49
50ring r=2,(x,y),lp;
51poly f;
52ideal I;
53intvec DD;
54intvec G,D,F;
55
56// KLEIN quartic over F_4 (p=2)
57
58f=x3y+y3+x;
59list KLEIN=Adj_div(f);
60KLEIN=NSplaces(1..5,KLEIN);
61def R=KLEIN[1][2];
62setring R;
63G=4,4;
64list LG=BrillNoether(G,KLEIN);
65LG;
66G=6,0,0,6;
67LG=BrillNoether(G,KLEIN);
68LG;
69G=5,-1,3;
70LG=BrillNoether(G,KLEIN);
71LG;
72list WS=Weierstrass(1,10,KLEIN);
73WS[1];
74WS[2];
75KLEIN=extcurve(3,KLEIN);
76KLEIN;
77def RP=KLEIN[1][5];
78setring RP;
79size(POINTS);
80def RR=KLEIN[1][4];
81setring RR;
82G=5,5,5;
83D=4..24;
84matrix CK=AGcode_Omega(G,D,KLEIN);
85print(CK);
86matrix HK=dual_code(CK);
87print(HK);
88list SK=sys_code(CK);
89print(SK[1]);
90print(SK[2]);
91SK[3];
92setring r;
93kill(R,RR,RP);
94
95// HERMITE curve over F_4 (p=2)
96
97f=x3+y2+y;
98list HC2=Adj_div(f);
99HC2=NSplaces(1..5,HC2);
100HC2=extcurve(2,HC2);
101def RP=HC2[1][5];
102setring RP;
103size(POINTS);
104def projR=HC2[1][2];
105setring projR;
106Weierstrass(1,12,HC2);
107def ER2=HC2[1][4];
108setring ER2;
109kill(projR,RP);
110G=5;
111D=2..9;
112matrix C2=AGcode_Omega(G,D,HC2);
113print(C2);
114list SC2=sys_code(C2);
115print(SC2[1]);
116print(SC2[2]);
117SC2[3];
118matrix H2=dual_code(C2);
119print(H2);
120list SH2=sys_code(H2);
121print(SH2[1]);
122print(SH2[2]);
123SH2[3];
124F=2;
125list SV2=prepSV(G,D,F,HC2);
126matrix y[1][8];
127y[1,3]=a;
128print(decodeSV(y,SV2));
129y[1,3]=0;
130y[1,6]=1;
131print(decodeSV(y,SV2));
132killall();
133
134// HERMITE curve over F_9 (p=3)
135
136ring r=3,(x,y),lp;
137list HC3=Adj_div(y3+y-x4);
138HC3=NSplaces(1..3,HC3);
139HC3=extcurve(2,HC3);
140def projR=HC3[1][2];
141setring projR;
142Weierstrass(1,15,HC3);
143def RP=HC3[1][5];
144setring RP;
145size(POINTS);
146def ER3=HC3[1][4];
147setring ER3;
148intvec G=15;
149intvec D=2..28;
150// we already have a rational divisor G and 27 more points over F_9;
151// let us construct the corresponding residual AG code of type
152//     [27,14,>=11] over F_9
153matrix C3=AGcode_Omega(G,D,HC3);
154print(C3);
155list SC3=sys_code(C3);
156print(SC3[1]);
157print(SC3[2]);
158SC3[3];
159matrix H3=dual_code(C3);
160print(H3);
161list SH3=sys_code(H3);
162print(SH3[1]);
163print(SH3[2]);
164SH3[3];
165// we can correct 3 errors and the genus is 3, thus F must have
166//    degree 6 and support disjoint to that of D :
167intvec F=6;
168list SV3=prepSV(G,D,F,HC3);
169// now we produce 3 errors on the zero-codeword :
170matrix y[1][27];
171y[1,1]=1;
172y[1,2]=a;
173y[1,3]=1;
174print(decodeSV(y,SV3));
175y[1,1]=0;
176y[1,2]=a;
177y[1,10]=a+1;
178y[1,3]=0;
179y[1,21]=1;
180print(decodeSV(y,SV3));
181y[1,4]=a;
182y[1,2]=0;
183y[1,12]=a;
184y[1,10]=0;
185y[1,21]=0;
186y[1,26]=a+1;
187print(decodeSV(y,SV3));
188
189// killall();
190
191
192tst_status(1);
193$
194
Note: See TracBrowser for help on using the repository browser.