Changeset 6dce0a in git
- Timestamp:
- Apr 8, 2011, 6:16:54 PM (13 years ago)
- Branches:
- (u'spielwiese', 'd1b01e9d51ade4b46b745d3bada5c5f3696be3a8')
- Children:
- 85e6ebcef21ccced4e0f80d03648434201ef3793
- Parents:
- 640e4c41fe3f49b835ff0373ec2b7cb6b7cf9553
- Files:
-
- 3 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/fpadim.lib
r640e4c r6dce0a 31 31 @* monomial in V the whole graph can be described only from the knowledge 32 32 @* of the mistletoes. Note that V corresponds to a basis of A/<GB>, so 33 @* knowing the mistletoes we know a K-basis. For more details see 34 @* [studzins]. This package uses the Letterplace format introduced by 35 @* [lls]. The algebra can either be represented as a Letterplace ring or 36 @* via integer vectors: Every variable will only be represented by its 37 @* number, so variable one is represented as 1, variable two as 2 and so 38 @* on. The monomial x_1*x_3*x_2 for example will be stored as (1,3,2). 39 @* Multiplication is concatenation. Note that there is no algorithm for 40 @* computing the normal form needed for our case. 41 @* 33 @* knowing the mistletoes we know a K-basis. The name mistletoes was given 34 @* to those points because of these miraculous value and the algorithm is 35 @* named sickle, because a sickle is the tool to harvest mistletoes. 36 @* For more details see [studzins]. This package uses the Letterplace 37 @* format introduced by [lls]. The algebra can either be represented as a 38 @* Letterplace ring or via integer vectors: Every variable will only be 39 @* represented by its number, so variable one is represented as 1, 40 @* variable two as 2 and so on. The monomial x_1*x_3*x_2 for example will 41 @* be stored as (1,3,2). Multiplication is concatenation. Note that there 42 @* is no algorithm for computing the normal form needed for our case. 43 @* Note that the name fpadim.lib is short for dimensions of finite 44 @* presented algebras. 42 45 43 46 References: … … 53 56 @* - all intvecs correspond to Letterplace monomials 54 57 @* - if you specify a different degree bound d, 55 d <= attrib(basering,uptodeg) holds58 d <= attrib(basering,uptodeg) should hold. 56 59 @* In the procedures below, 'iv' stands for intvec representation 57 60 and 'lp' for the letterplace representation of monomials … … 142 145 {for (i3 = 1; i3 <= n; i3++) 143 146 {for (i4 = 1; i4 <= (n^(i1-1)); i4++) 144 145 146 147 {M[i2,i1] = i3; 148 i2 = i2 + 1; 149 } 147 150 } 148 151 } … … 191 194 for (j = 1; j<= size(P); j++) 192 195 {if (P[j] <= size(Vt)) 193 194 195 196 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 197 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 198 } 196 199 } 197 200 if (w == 0) 198 201 {vector Vtt; 199 200 201 202 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 203 M = M,Vtt; 204 kill Vtt; 202 205 } 203 206 } … … 207 210 for (i = 1; i <= size(M); i++) 208 211 {kill Vt; intvec Vt; 209 210 212 for (j =1; j <= size(M[i]); j++){Vt[j] = int(leadcoef(M[i][j]));} 213 dimen = dimen + 1 + findDimen(Vt,n,L,P); 211 214 } 212 215 return(dimen); … … 220 223 for (j = 1; j<= size(P); j++) 221 224 {if (P[j] <= size(Vt)) 222 223 224 225 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 226 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 227 } 225 228 } 226 229 if (w == 0) {vector Vtt; 227 228 229 230 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 231 M = M,Vtt; 232 kill Vtt; 230 233 } 231 234 } … … 235 238 for (i = 1; i <= size(M); i++) 236 239 {kill Vt; intvec Vt; 237 238 240 for (j =1; j <= size(M[i]); j++){Vt[j] = int(leadcoef(M[i][j]));} 241 dimen = dimen + 1 + findDimen(Vt,n,L,P,degbound); 239 242 } 240 243 return(dimen); … … 255 258 for (j = 1; j <= size(P); j++) 256 259 {if (P[j] <= size(Vt)) 257 258 259 260 260 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 261 if (isInMat(Vt2,L[j]) > 0) 262 {w = 1; break;} 263 } 261 264 } 262 265 if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);} … … 272 275 for (it = 1; it <= j; it++) 273 276 { for(it2 = 1; it2 <= nrows(M);it2++) 274 277 {Mt[it,it2] = int(leadcoef(M[it2,it]));} 275 278 } 276 279 Vt = V[(size(V)-ld+1)..size(V)]; … … 279 282 else 280 283 {vector Vtt; 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 284 for (it =1; it <= size(Vt); it++) 285 {Vtt = Vtt + Vt[it]*gen(it);} 286 M = M,Vtt; 287 kill Vtt; 288 for (i = 1; i <= n; i++) 289 {Vt = V,i; w = 0; 290 for (j = 1; j <= size(P); j++) 291 {if (P[j] <= size(Vt)) 292 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 293 //L[j]; type(L[j]);Vt2;type(Vt2); 294 if (isInMat(Vt2,L[j]) > 0) 295 {w = 1; break;} 296 } 297 } 298 if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);} 299 if (r == 1) {break;} 300 } 301 return(r); 299 302 } 300 303 } … … 308 311 for (i = 1; i <= n; i++) 309 312 {Vt = V,i; w = 0; 310 311 312 313 314 315 316 317 318 319 313 for (j = 1; j <= size(P); j++) 314 {if (P[j] <= size(Vt)) 315 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 316 //L[j]; type(L[j]);Vt2;type(Vt2); 317 if (isInMat(Vt2,L[j]) > 0) 318 {w = 1; break;} 319 } 320 } 321 if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);} 322 if (r == 1) {break;} 320 323 } 321 324 return(r); … … 342 345 for (j = 1; j<= size(P); j++) 343 346 {if (P[j] <= size(Vt)) 344 345 346 347 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 348 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 349 } 347 350 } 348 351 if (w == 0) 349 352 {vector Vtt; 350 351 352 353 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 354 M = M,Vtt; 355 kill Vtt; 353 356 } 354 357 } … … 358 361 for (i = 1; i <= size(M); i++) 359 362 {kill Vt; intvec Vt; 360 361 363 for (j =1; j <= size(M[i]); j++) {Vt[j] = int(leadcoef(M[i][j]));} 364 h1 = h1 + 1; H1 = findHCoeff(Vt,n,L,P,H1); 362 365 } 363 366 if (size(H1) < (size(V)+2)) {H1[(size(V)+2)] = h1;} … … 374 377 for (j = 1; j<= size(P); j++) 375 378 {if (P[j] <= size(Vt)) 376 377 378 379 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 380 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 381 } 379 382 } 380 383 if (w == 0) 381 384 {vector Vtt; 382 383 384 385 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 386 M = M,Vtt; 387 kill Vtt; 385 388 } 386 389 } … … 390 393 for (i = 1; i <= size(M); i++) 391 394 {kill Vt; intvec Vt; 392 393 394 395 for (j =1; j <= size(M[i]); j++) 396 {Vt[j] = int(leadcoef(M[i][j]));} 397 h1 = h1 + 1; H1 = findHCoeff(Vt,n,L,P,H1,degbound); 395 398 } 396 399 if (size(H1) < (size(V)+2)) { H1[(size(V)+2)] = h1;} … … 419 422 for (j = 1; j<= size(P); j++) 420 423 {if (P[j] <= size(Vt)) 421 422 423 424 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 425 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 426 } 424 427 } 425 428 if (w == 0) 426 429 {vector Vtt; 427 428 429 430 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 431 M = M,Vtt; 432 kill Vtt; 430 433 } 431 434 } … … 435 438 for (i = 1; i <= size(M); i++) 436 439 {kill Vt; intvec Vt; 437 438 439 440 441 442 440 for (j =1; j <= size(M[i]); j++) 441 {Vt[j] = int(leadcoef(M[i][j]));} 442 if (size(R[1]) < (size(V)+2)) { R[1][(size(V)+2)] = 1;} 443 else 444 {R[1][(size(V)+2)] = R[1][(size(V)+2)] + 1;} 445 R = findHCoeffMis(Vt,n,L,P,R); 443 446 } 444 447 return(R); … … 456 459 for (j = 1; j<= size(P); j++) 457 460 {if (P[j] <= size(Vt)) 458 459 460 461 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 462 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 463 } 461 464 } 462 465 if (w == 0) 463 466 {vector Vtt; 464 465 466 467 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 468 M = M,Vtt; 469 kill Vtt; 467 470 } 468 471 } … … 472 475 for (i = 1; i <= ncols(M); i++) 473 476 {kill Vt; intvec Vt; 474 475 476 477 478 479 477 for (j =1; j <= size(M[i]); j++) 478 {Vt[j] = int(leadcoef(M[i][j]));} 479 if (size(R[1]) < (size(V)+2)) { R[1][(size(V)+2)] = 1;} 480 else 481 {R[1][(size(V)+2)] = R[1][(size(V)+2)] + 1;} 482 R = findHCoeffMis(Vt,n,L,P,R,degbound); 480 483 } 481 484 return(R); … … 500 503 for (j = 1; j<= size(P); j++) 501 504 {if (P[j] <= size(Vt)) 502 503 504 505 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 506 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 507 } 505 508 } 506 509 if (w == 0) 507 510 {vector Vtt; 508 509 510 511 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 512 M = M,Vtt; 513 kill Vtt; 511 514 } 512 515 } … … 520 523 for (i = 1; i <= size(M); i++) 521 524 {kill Vt; intvec Vt; 522 523 525 for (j =1; j <= size(M[i]); j++){Vt[j] = int(leadcoef(M[i][j]));} 526 R[1] = R[1] + 1; R = findMisDim(Vt,n,L,P,R); 524 527 } 525 528 return(R); … … 537 540 for (j = 1; j<= size(P); j++) 538 541 {if (P[j] <= size(Vt)) 539 540 541 542 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 543 if (isInMat(Vt2,L[j]) > 0) {w = 1; break;} 544 } 542 545 } 543 546 if (w == 0) 544 547 {vector Vtt; 545 546 547 548 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 549 M = M,Vtt; 550 kill Vtt; 548 551 } 549 552 } … … 557 560 for (i = 1; i <= size(M); i++) 558 561 {kill Vt; intvec Vt; 559 560 562 for (j =1; j <= size(M[i]); j++){Vt[j] = int(leadcoef(M[i][j]));} 563 R[1] = R[1] + 1; R = findMisDim(Vt,n,L,P,R,degbound); 561 564 } 562 565 return(R); … … 586 589 for (j = 1; j <= size(P); j++) 587 590 {if (P[j] <= size(Vt)) 588 589 590 591 591 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 592 if (isInMat(Vt2,L[j]) > 0) 593 {w = 1; break;} 594 } 592 595 } 593 596 if (w == 0) 594 597 {vector Vtt; 595 596 597 598 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 599 M = M,Vtt; 600 kill Vtt; 598 601 } 599 602 } … … 603 606 for (i = 1; i <= size(M); i++) 604 607 {kill Vt; intvec Vt; 605 606 608 for (j =1; j <= size(M[i]); j++){Vt[j] = int(leadcoef(M[i][j]));} 609 R = R + findmistletoes(Vt,n,L,P); 607 610 } 608 611 return(R); … … 617 620 for (j = 1; j <= size(P); j++) 618 621 {if (P[j] <= size(Vt)) 619 620 621 622 {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)]; 623 if (isInMat(Vt2,L[j]) > 0){w = 1; break;} 624 } 622 625 } 623 626 if (w == 0) 624 627 {vector Vtt; 625 626 627 628 for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);} 629 M = M,Vtt; 630 kill Vtt; 628 631 } 629 632 } … … 633 636 for (i = 1; i <= ncols(M); i++) 634 637 {kill Vt; intvec Vt; 635 636 637 638 638 for (j =1; j <= size(M[i]); j++) 639 {Vt[j] = int(leadcoef(M[i][j]));} 640 //Vt; typeof(Vt); size(Vt); 641 R = R + findmistletoes(Vt,n,L,P,degbound); 639 642 } 640 643 return(R); … … 683 686 "USAGE: ivL2lpI(L); L a list of intvecs 684 687 RETURN: ideal 685 PURPOSE:Transforming a list of intvecs into an ideal of Letterplace monomials 688 PURPOSE:Transforming a list of intvecs into an ideal of Letterplace monomials. 689 @* For the encoding of the variables see the overview. 686 690 ASSUME: - Intvec corresponds to a Letterplace monomial 687 691 @* - basering has to be a Letterplace ring … … 713 717 RETURN: poly 714 718 PURPOSE:Transforming an intvec into the corresponding Letterplace polynomial 719 @* For the encoding of the variables see the overview. 715 720 ASSUME: - Intvec corresponds to a Letterplace monomial 716 721 @* - basering has to be a Letterplace ring … … 742 747 RETURN: ideal 743 748 PURPOSE:Converting a list of intmats into an ideal of corresponding monomials 749 @* The rows of the intmat corresponds to an intvec, which stores the 750 @* monomial. 751 @* For the encoding of the variables see the overview. 744 752 ASSUME: - The rows of each intmat in L must correspond to a Letterplace monomial 745 753 @* - basering has to be a Letterplace ring … … 770 778 "USAGE: iv2lpMat(M); M an intmat 771 779 RETURN: ideal 772 PURPOSE:Converting an intmat into an ideal of the corresponding monomials 780 PURPOSE:Converting an intmat into an ideal of the corresponding monomials. 781 @* The rows of the intmat corresponds to an intvec, which stores the 782 @* monomial. 783 @* For the encoding of the variables see the overview. 773 784 ASSUME: - The rows of M must correspond to Letterplace monomials 774 785 @* - basering has to be a Letterplace ring … … 804 815 "USAGE: lpId2ivLi(G); G an ideal 805 816 RETURN: list 806 PURPOSE:Transforming an ideal into the corresponding list of intvecs 817 PURPOSE:Transforming an ideal into the corresponding list of intvecs. 818 @* For the encoding of the variables see the overview. 807 819 ASSUME: - basering has to be a Letterplace ring 808 820 EXAMPLE: example lpId2ivLi; shows examples … … 827 839 "USAGE: lp2iv(p); p a poly 828 840 RETURN: intvec 829 PURPOSE:Transforming a monomial into the corresponding intvec 841 PURPOSE:Transforming a monomial into the corresponding intvec. 842 @* For the encoding of the variables see the overview. 830 843 ASSUME: - basering has to be a Letterplace ring 831 844 NOTE: - Assumptions will not be checked! … … 869 882 RETURN: list 870 883 PURPOSE:Converting an ideal into an list of intmats, 871 @* the corresponding intvecs forming the rows 884 @* the corresponding intvecs forming the rows. 885 @* For the encoding of the variables see the overview. 872 886 ASSUME: - basering has to be a Letterplace ring 873 887 EXAMPLE: example lp2ivId; shows examples … … 917 931 ASSUME: - basering is a Letterplace ring 918 932 @* - all rows of each intmat correspond to a Letterplace monomial 933 @* for the encoding of the variables see the overview 919 934 @* - if you specify a different degree bound degbound, 920 @* degbound <= attrib(basering,uptodeg) holds935 @* degbound <= attrib(basering,uptodeg) should hold. 921 936 NOTE: - If L is the list returned, then L[1] is an integer corresponding to the 922 937 @* dimension, L[2] is an intvec which contains the coefficients of the … … 968 983 ASSUME: - basering is a Letterplace ring. 969 984 @* - All rows of each intmat correspond to a Letterplace monomial. 985 @* for the encoding of the variables see the overview 970 986 @* - If you specify a different degree bound degbound, 971 @* degbound <= attrib(basering,uptodeg) holds.987 @* degbound <= attrib(basering,uptodeg) should hold. 972 988 NOTE: - If L is the list returned, then L[1] is an integer, L[2] is an intvec 973 989 @* which contains the coefficients of the Hilbert series and L[3] … … 1014 1030 RETURN: int, 0 if the dimension is finite, or 1 otherwise 1015 1031 PURPOSE:Decides, whether the K-dimension is finite or not 1016 ASSUME: - basering is a Letterplace ring. 1017 @* - All rows of each intmat correspond to a Letterplace monomial. 1018 NOTE: - n is the number of variables. 1032 ASSUME: - basering is a Letterplace ring 1033 @* - All rows of each intmat correspond to a Letterplace monomial 1034 @* For the encoding of the variables see the overview. 1035 NOTE: - n is the number of variables 1019 1036 EXAMPLE: example ivDimCheck; shows examples 1020 1037 " … … 1072 1089 ASSUME: - basering is a Letterplace ring. 1073 1090 @* - all rows of each intmat correspond to a Letterplace monomial 1091 @* for the encoding of the variables see the overview 1074 1092 @* - if you specify a different degree bound degbound, 1075 @* degbound <= attrib(basering,uptodeg) holds.1093 @* degbound <= attrib(basering,uptodeg) should hold. 1076 1094 NOTE: - If degbound is set, a degree bound will be added. By default there 1077 1095 @* is no degree bound. … … 1157 1175 ASSUME: - basering is a Letterplace ring. 1158 1176 @* - all rows of each intmat correspond to a Letterplace monomial 1177 @* for the encoding of the variables see the overview 1159 1178 @* - if you specify a different degree bound degbound, 1160 @* degbound <= attrib(basering,uptodeg) holds.1179 @* degbound <= attrib(basering,uptodeg) should hold. 1161 1180 NOTE: - If degbound is set, a degree bound will be added. By default there 1162 1181 @* is no degree bound. … … 1239 1258 @* Otherwise there might some elements missing. 1240 1259 @* - basering is a Letterplace ring. 1260 @* - mistletoes are stored as intvecs, as described in the overview 1241 1261 EXAMPLE: example ivMis2Base; shows examples 1242 1262 " … … 1292 1312 @* Otherwise the returned value may differ from the K-dimension. 1293 1313 @* - basering is a Letterplace ring. 1314 @* - mistletoes are stored as intvecs, as described in the overview 1294 1315 EXAMPLE: example ivMis2Dim; shows examples 1295 1316 " … … 1299 1320 if (isInList(L,M) > 0) {print("1 is a mistletoe, therefore dim = 1"); return(1);} 1300 1321 int i,j,d,s; 1301 j = 1;1302 1322 d = 1 + size(M[1]); 1303 1323 for (i = 1; i < size(M); i++) 1304 {s = size(M[i]); if (s > size(M[i+1])){s = size(M[i+1]);} 1305 while ((M[i][j] == M[i+1][j]) && (j <= s)){j = j + 1;} 1306 d = d + size(M[i+1])- j + 1; 1324 {j = 1; 1325 s = size(M[i]); if (s > size(M[i+1])){s = size(M[i+1]);} 1326 while ((M[i][j] == M[i+1][j]) && (j <= s)){j = j + 1;} 1327 d = d + size(M[i+1])- j + 1; 1307 1328 } 1308 1329 return(d); … … 1326 1347 PURPOSE:Orders a given set of mistletoes lexicographically 1327 1348 ASSUME: - basering is a Letterplace ring. 1328 - intvecs correspond to monomials 1349 @* - intvecs correspond to monomials, as explained in the overview 1329 1350 NOTE: - This is preprocessing, it's not needed if the mistletoes are returned 1330 1351 @* from the sickle algorithm. … … 1352 1373 @* optional integer 1353 1374 RETURN: list, containing intvecs, the mistletoes of A/<L> 1354 PURPOSE:Computing the mistletoes for a given Groebner basis L 1375 PURPOSE:Computing the mistletoes for a given Groebner basis L, given by intmats 1355 1376 ASSUME: - basering is a Letterplace ring. 1356 1377 @* - all rows of each intmat correspond to a Letterplace monomial 1378 @* as explained in the overview 1357 1379 @* - if you specify a different degree bound degbound, 1358 @* degbound <= attrib(basering,uptodeg) holds.1380 @* degbound <= attrib(basering,uptodeg) should hold. 1359 1381 NOTE: - If degbound is set, a degree bound will be added. By default there 1360 1382 @* is no degree bound. … … 1434 1456 ASSUME: - basering is a Letterplace ring. 1435 1457 @* - all rows of each intmat correspond to a Letterplace monomial 1458 @* as explained in the overview 1436 1459 @* - if you specify a different degree bound degbound, 1437 @* degbound <= attrib(basering,uptodeg) holds.1460 @* degbound <= attrib(basering,uptodeg) should hold. 1438 1461 NOTE: - If L is the list returned, then L[1] is an integer, L[2] is a list, 1439 1462 @* containing the mistletoes as intvecs. … … 1521 1544 ASSUME: - basering is a Letterplace ring. 1522 1545 @* - all rows of each intmat correspond to a Letterplace monomial 1546 @* as explained in the overview 1523 1547 @* - if you specify a different degree bound degbound, 1524 @* degbound <= attrib(basering,uptodeg) holds.1548 @* degbound <= attrib(basering,uptodeg) should hold. 1525 1549 NOTE: - If L is the list returned, then L[1] is an intvec, L[2] is a list, 1526 1550 @* containing the mistletoes as intvecs. … … 1605 1629 RETURN: list 1606 1630 PURPOSE:Computing K-dimension and Hilbert series, starting with a lp-ideal 1607 ASSUME: - basering is a Letterplace ring. 1631 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1608 1632 @* - if you specify a different degree bound degbound, 1609 @* degbound <= attrib(basering,uptodeg) holds.1633 @* degbound <= attrib(basering,uptodeg) should hold. 1610 1634 NOTE: - If L is the list returned, then L[1] is an integer corresponding to the 1611 1635 @* dimension, L[2] is an intvec which contains the coefficients of the … … 1647 1671 RETURN: list 1648 1672 PURPOSE:Computing K-dimension, Hilbert series and mistletoes at once 1649 ASSUME: - basering is a Letterplace ring. 1673 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1650 1674 @* - if you specify a different degree bound degbound, 1651 @* degbound <= attrib(basering,uptodeg) holds.1675 @* degbound <= attrib(basering,uptodeg) should hold. 1652 1676 NOTE: - If L is the list returned, then L[1] is an integer, the K-dimension, 1653 @* L[2] is an intvec, the Hilbert series and L[3] is an ideal, 1677 @* L[2] is an intvec, the Hilbert series and L[3] is an ideal, 1654 1678 @* the mistletoes 1655 1679 @* - If degbound is set, there will be a degree bound added. 0 means no … … 1690 1714 RETURN: intvec, containing the coefficients of the Hilbert series 1691 1715 PURPOSE:Computing the Hilbert series 1692 ASSUME: - basering is a Letterplace ring. 1716 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1693 1717 @* - if you specify a different degree bound degbound, 1694 @* degbound <= attrib(basering,uptodeg) holds.1718 @* degbound <= attrib(basering,uptodeg) should hold. 1695 1719 NOTE: - If degbound is set, there will be a degree bound added. 0 means no 1696 1720 @* degree bound. Default: attrib(basering,uptodeg). … … 1728 1752 RETURN: int, 1 if K-dimension of the factor algebra is infinite, 0 otherwise 1729 1753 PURPOSE:Checking a factor algebra for finiteness of the K-dimension 1730 ASSUME: - basering is a Letterplace ring. 1754 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1731 1755 EXAMPLE: example lpDimCheck; shows examples 1732 1756 " … … 1756 1780 RETURN: int, the K-dimension of the factor algebra 1757 1781 PURPOSE:Computing the K-dimension of a factor algebra, given via an ideal 1758 ASSUME: - basering is a Letterplace ring 1782 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1759 1783 @* - if you specify a different degree bound degbound, 1760 @* degbound <= attrib(basering,uptodeg) holds.1784 @* degbound <= attrib(basering,uptodeg) should hold. 1761 1785 NOTE: - If degbound is set, there will be a degree bound added. 0 means no 1762 1786 @* degree bound. Default: attrib(basering, uptodeg). … … 1791 1815 RETURN: ideal, a K-basis of the factor algebra 1792 1816 PURPOSE:Computing a K-basis out of given mistletoes 1793 ASSUME: - basering is a Letterplace ring. 1817 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1794 1818 @* - M contains only monomials 1795 1819 NOTE: - The mistletoes have to be ordered lexicographically -> OrdMisLex. … … 1815 1839 RETURN: int, the K-dimension of the factor algebra 1816 1840 PURPOSE:Computing the K-dimension out of given mistletoes 1817 ASSUME: - basering is a Letterplace ring. 1841 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1818 1842 @* - M contains only monomials 1819 1843 NOTE: - The mistletoes have to be ordered lexicographically -> OrdMisLex. … … 1839 1863 RETURN: ideal, containing the mistletoes, ordered lexicographically 1840 1864 PURPOSE:A given set of mistletoes is ordered lexicographically 1841 ASSUME: - basering is a Letterplace ring. 1865 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1842 1866 NOTE: This is preprocessing, it is not needed if the mistletoes are returned 1843 1867 @* from the sickle algorithm. … … 1860 1884 RETURN: ideal 1861 1885 PURPOSE:Computing the mistletoes of K[X]/<G> 1862 ASSUME: - basering is a Letterplace ring. 1886 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1863 1887 @* - if you specify a different degree bound degbound, 1864 @* degbound <= attrib(basering,uptodeg) holds.1888 @* degbound <= attrib(basering,uptodeg) should hold. 1865 1889 NOTE: - If degbound is set, there will be a degree bound added. 0 means no 1866 1890 @* degree bound. Default: attrib(basering,uptodeg). … … 1898 1922 RETURN: list 1899 1923 PURPOSE:Computing the K-dimension and the mistletoes 1900 ASSUME: - basering is a Letterplace ring. 1924 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1901 1925 @* - if you specify a different degree bound degbound, 1902 @* degbound <= attrib(basering,uptodeg) holds.1926 @* degbound <= attrib(basering,uptodeg) should hold. 1903 1927 NOTE: - If L is the list returned, then L[1] is an integer, the K-dimension, 1904 1928 @* L[2] is an ideal, the mistletoes. … … 1937 1961 RETURN: list 1938 1962 PURPOSE:Computing the Hilbert series and the mistletoes 1939 ASSUME: - basering is a Letterplace ring. 1963 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1940 1964 @* - if you specify a different degree bound degbound, 1941 @* degbound <= attrib(basering,uptodeg) holds.1965 @* degbound <= attrib(basering,uptodeg) should hold. 1942 1966 NOTE: - If L is the list returned, then L[1] is an intvec, corresponding to the 1943 1967 @* Hilbert series, L[2] is an ideal, the mistletoes. … … 1979 2003 RETURN: list 1980 2004 PURPOSE:Allowing the user to access all procs with one command 1981 ASSUME: - basering is a Letterplace ring. 2005 ASSUME: - basering is a Letterplace ring. G is a Letterplace ideal. 1982 2006 @* - if you specify a different degree bound degbound, 1983 @* degbound <= attrib(basering,uptodeg) holds.2007 @* degbound <= attrib(basering,uptodeg) should hold. 1984 2008 NOTE: The returned object will always be a list, but the entries of the 1985 2009 @* returned list may be very different … … 2041 2065 2042 2066 2067 proc tst_fpadim() 2068 { 2069 example ivDHilbert; 2070 example ivDHilbertSickle; 2071 example ivDimCheck; 2072 example ivHilbert; 2073 example ivKDim; 2074 example ivMis2Base; 2075 example ivMis2Dim; 2076 example ivOrdMisLex; 2077 example ivSickle; 2078 example ivSickleHil; 2079 example ivSickleDim; 2080 example lpDHilbert; 2081 example lpDHilbertSickle; 2082 example lpHilbert; 2083 example lpDimCheck; 2084 example lpKDim; 2085 example lpMis2Base; 2086 example lpMis2Dim; 2087 example lpOrdMisLex; 2088 example lpSickle; 2089 example lpSickleHil; 2090 example lpSickleDim; 2091 example sickle; 2092 example ivL2lpI; 2093 example iv2lp; 2094 example iv2lpList; 2095 example iv2lpMat; 2096 example lp2iv; 2097 example lp2ivId; 2098 example lpId2ivLi; 2099 } 2100 2101 2102 2103 2104 2043 2105 /* 2044 2106 Here are some examples one may try. Just copy them into your console. -
Tst/Short/ok_s.lst
r640e4c r6dce0a 131 131 finvar_s 132 132 finvarlb 133 fpadim_s 133 134 gaussm_ex 134 135 gcd0_s
Note: See TracChangeset
for help on using the changeset viewer.