Changeset 28734e in git
- Timestamp:
- Feb 21, 2009, 4:26:42 PM (14 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- 019a78d9b792cb277c1ba4090e9edfa00c9d19fe
- Parents:
- 40b31de81774f2cb2360815a1a5e3b8c608dd76f
- Location:
- Singular/LIB
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/dmodapp.lib
r40b31de r28734e 1 1 ////////////////////////////////////////////////////////////////////////////// 2 version="$Id: dmodapp.lib,v 1.1 8 2009-02-12 20:25:23levandov Exp $";2 version="$Id: dmodapp.lib,v 1.19 2009-02-21 15:26:41 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 595 595 { 596 596 // Appel F1, d = b', SST p.48 597 ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1), dp);597 ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp); 598 598 matrix @D[4][4]; 599 599 @D[1,3]=1; @D[2,4]=1; … … 611 611 { 612 612 "EXAMPLE:"; echo = 2; 613 ring r = 0,x,dp;614 613 def A = appelF1(); 615 614 setring A; … … 626 625 { 627 626 // Appel F2, c = b', SST p.85 628 ring @r = (0,a,b,c),(x,y,Dx,Dy),(a(0,0,1,1), dp);627 ring @r = (0,a,b,c),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp); 629 628 matrix @D[4][4]; 630 629 @D[1,3]=1; @D[2,4]=1; … … 641 640 { 642 641 "EXAMPLE:"; echo = 2; 643 ring r = 0,x,dp;644 642 def A = appelF2(); 645 643 setring A; … … 656 654 { 657 655 // Appel F4, d = c', SST, p. 39 658 ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1), dp);656 ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp); 659 657 matrix @D[4][4]; 660 658 @D[1,3]=1; @D[2,4]=1; … … 671 669 { 672 670 "EXAMPLE:"; echo = 2; 673 ring r = 0,x,dp;674 671 def A = appelF4(); 675 672 setring A; -
Singular/LIB/ratgb.lib
r40b31de r28734e 1 1 ////////////////////////////////////////////////////////////////////////////// 2 version="$Id: ratgb.lib,v 1.1 3 2009-01-14 16:07:05 SingularExp $";2 version="$Id: ratgb.lib,v 1.14 2009-02-21 15:26:42 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" 5 LIBRARY: ratgb.lib Groebner bases in Ore localizations 5 LIBRARY: ratgb.lib Groebner bases in Ore localizations of noncommutative G-algebras 6 6 AUTHOR: Viktor Levandovskyy, levandov@risc.uni-linz.ac.at 7 8 THEORY: Let A be an operator algebra with R = K[x1,.,xN] as subring. The operators 9 are usually denoted by {d1,..,dM}. Assume, that A is a G-algebra, then the set S=R-{0} 10 is multiplicatively closed and is an Ore set in A. That is, for any s in S and a in A, 11 there exist t in S and b in A, such that sa=bt. In other words one can transform 12 any left fraction into the right fraction. The algebra A_S is entermed an Ore 13 localization of A with respect to S. This library provides Groebner basis 14 procedure for A_S, performing polynomial computations only. 7 15 8 16 PROCEDURES: … … 13 21 14 22 LIB "poly.lib"; 23 LIB "dmodapp.lib"; // for Appel1, Appel2, Appel4 15 24 16 25 //static … … 53 62 @* the first block of length n contains the elements 54 63 @* with respect to which one localizes, 55 @* the basering is equipped with the elimination ordering64 @* the basering is equipped with the elimination block ordering 56 65 @* for the variables in the second block 57 66 NOTE: the output ring O is commutative. The ideal rGBid in O … … 60 69 vector space D-dimension of I are computed and printed out. 61 70 @* Setting optional integer eng to 1, slimgb is taken as Groebner engine 62 TRACING: In order to see the steps of the computation, set printlevel to >=271 DISPLAY: In order to see the steps of the computation, set printlevel to >=2 63 72 EXAMPLE: example ratstd; shows examples 64 73 " … … 150 159 RL[2] = tmp1; 151 160 152 // assume the ordering is the block with (a(0:is),ORD)153 // set up ORD as the ordering161 // old: assume the ordering is the block with (a(0:is),ORD) 162 // old :set up ORD as the ordering 154 163 // L; "RL:"; RL; 155 164 if (size(L[3]) != 3) 156 165 { 157 "note: strange ordering"; 158 } 159 kill tmp2; list tmp2; 160 tmp2[1] = L[3][2]; 161 tmp2[2] = L[3][3]; 162 RL[3] = tmp2; 163 166 //"note: strange ordering"; 167 // NEW assume: ordering is the antiblock with (a(0:is),a(*1),a(*), ORD) 168 // get the a() parts after is => they should form a complete D-ordering 169 list L3 = L[3]; list NL3; kill tmp3; list tmp3; 170 int @sl = size(L3); 171 int w=1; int z; intvec va,vb; 172 while(L3[w][1] == "a") 173 { 174 va = L3[w][2]; 175 for(z=1;z<=nvars(save)-is;z++) 176 { 177 vb[z] = va[is+z]; 178 } 179 tmp3[1] = "a"; 180 tmp3[2] = vb; 181 NL3[w] = tmp3; tmp3=0; 182 w++; 183 } 184 // check for completeness: must be >= nvars(save)-is rows 185 if (w < nvars(save)-is) 186 { 187 "note: ordering is incomplete on D. Adding lower Dp block"; 188 // adding: positive things like Dp 189 tmp3[1]= "Dp"; 190 for (z=1; z<=nvars(save)-is; z++) 191 { 192 va[is+z] = 1; 193 } 194 tmp3[2] = va; 195 NL3[w] = tmp3; tmp3 = 0; 196 w++; 197 } 198 NL3[w] = L3[@sl]; // module ord? 199 RL[3] = NL3; 200 } 201 else 202 { 203 kill tmp2; list tmp2; 204 tmp2[1] = L[3][2]; 205 tmp2[2] = L[3][3]; 206 RL[3] = tmp2; 207 } 164 208 // factor ideal is ignored 165 209 RL[4] = ideal(0); 210 211 // "ringlist:"; RL; 166 212 167 213 def @RAT = ring(RL); … … 284 330 { 285 331 "EXAMPLE:"; echo = 2; 286 ring r = 0,(k,n,K,N),(a(0,1),dp); 287 matrix D[4][4]; 288 D[1,3] = K; 289 D[2,4] = N; 332 ring r = 0,(k,n,K,N),(a(0,0,1,1),a(0,0,1,0),dp); 333 matrix D[4][4]; D[1,3] = K; D[2,4] = N; 290 334 def S = nc_algebra(1,D); 291 setring S; 335 setring S; // S is the 2nd shift algebra 292 336 ideal I = (k+1)*K - (n-k), (n-k+1)*N - (n+1); 293 int is = 1;337 int is = 2; // hence 1st and 2nd variables treated as units 294 338 def A = ratstd(I,is); 295 339 pGBid; // polynomial form … … 298 342 } 299 343 300 static proc exParam() 344 /* 345 proc exParamAppelF4() 301 346 { 302 347 // Appel F4 303 348 LIB "ratgb.lib"; 304 ring r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1), dp);349 ring r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp); 305 350 matrix @D[4][4]; 306 351 @D[1,3]=1; @D[2,4]=1; … … 314 359 setring A; 315 360 rGBid; // rational form 316 } 361 // hence, the K(x,y) basis is {1,Dx,Dy,Dy^2} 362 } 363 364 // more examples: 365 366 // F1 is hard 367 appel F1 368 { 369 LIB "dmodapp.lib"; 370 LIB "ratgb.lib"; 371 def A = appelF1(); 372 setring A; 373 IAppel1; 374 def F1 = ratstd(IAppel1,2); 375 lead(pGBid); 376 setring F1; rGBid; 377 } 378 379 // F2 is much easier 380 appel F2 381 { 382 LIB "dmodapp.lib"; 383 LIB "ratgb.lib"; 384 def A = appelF2(); 385 setring A; 386 IAppel2; 387 def F1 = ratstd(IAppel2,2); 388 lead(pGBid); 389 setring F1; rGBid; 390 } 391 392 // F4 is feasible 393 appel F4 394 { 395 LIB "dmodapp.lib"; 396 LIB "ratgb.lib"; 397 def A = appelF4(); 398 setring A; 399 IAppel4; 400 def F1 = ratstd(IAppel4,2); 401 lead(pGBid); 402 setring F1; rGBid; 403 } 404 405 406 */
Note: See TracChangeset
for help on using the changeset viewer.