source: git/Tst/Short/brnoeth_s.tst @ 9a44a0f

spielwiese
Last change on this file since 9a44a0f was 9a44a0f, checked in by Hans Schönemann <hannes@…>, 19 years ago
*hannes: hnoether.lib, normal.lib git-svn-id: file:///usr/local/Singular/svn/trunk@8699 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.3 KB
Line 
1LIB "tst.lib";
2tst_ignore("CVS ID $Id: brnoeth_s.tst,v 1.5 2005-10-06 16:21:28 Singular Exp $");
3tst_init();
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// char 3 !
192
193ring r=3,(x,y),dp;
194list C=Adj_div(2x+x3+2x5+(1+x2+x4)*y4+x6y12);
195C=NSplaces(1..2,C);
196C=extcurve(2,C);
197
198def SS1=C[1][5];
199setring SS1;
200POINTS;
201
202setring r;
203def SS2=C[5][2][1];
204setring SS2;
205
206def RR=C[1][2];
207setring RR;
208list WS=Weierstrass(17,6,C);
209WS;
210
211tst_status(1);$
212
Note: See TracBrowser for help on using the repository browser.