Changeset 602b552 in git
 Timestamp:
 Mar 24, 2011, 4:44:40 PM (12 years ago)
 Branches:
 (u'jengelhdatetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
 Children:
 84c600783f02703f8b78f0edd53d01c0e8e0834b
 Parents:
 0dfa244172c41202ec5a6f6e99d2e04d2f572a2f
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

Singular/LIB/primdecint.lib
r0dfa24 r602b552 3 3 category = "Commutative Algebra"; 4 4 info=" 5 LIBRARY: primdecint.lib primary decomposition over the integers 5 LIBRARY: primdecint.lib primary decomposition of an ideal in the polynomial 6 ring over the integers 6 7 7 8 AUTHORS: G. Pfister pfister@mathematik.unikl.de … … 13 14 A library for computing the primary decomposition of an ideal in the 14 15 polynomial ring over the integers, Z[x_1,...,x_n]. 16 The first procedure 'primdecZ' can be used in parallel. 15 17 16 18 PROCEDURES: … … 28 30 29 31 proc primdecZ(ideal I, list #) 30 "USAGE: primdecZ(I ); I ideal32 "USAGE: primdecZ(I[, n]); I ideal, n integer (number of processors) 31 33 NOTE: If size(#) > 0, then #[1] is the number of available processors for 32 the computation. Parallelization is just applicable using 32bit 33 Singular version since MPlinks are not compatible with 64bit Singular 34 version. 34 the computation. 35 35 RETURN: a list pr of primary ideals and their associated primes: 36 36 @format … … 49 49 { 50 50 int n = #[1]; 51 if((n > 1) && (1  system("with","MP")))52 {53 "========================================================================";54 "There is no MP available on your system. Since this is necessary to ";55 "parallelize the algorithm, the computation will be done without forking.";56 "========================================================================";57 n = 1;58 }59 51 ideal TES = 1; 60 52 } … … 62 54 { 63 55 int n = #[1]; 64 if((n > 1) && (1  system("with","MP")))65 {66 "========================================================================";67 "There is no MP available on your system. Since this is necessary to ";68 "parallelize the algorithm, the computation will be done without forking.";69 "========================================================================";70 n = 1;71 }72 56 ideal TES = #[2]; 73 57 } … … 80 64 81 65 82 if(deg(I[1]) ==0)83 { 84 ideal J =I;66 if(deg(I[1]) == 0) 67 { 68 ideal J = I; 85 69 } 86 70 else 87 71 { 88 ideal J =stdZ(I);72 ideal J = stdZ(I); 89 73 } 90 74 … … 136 120 p=int(L[1][i + 1]); 137 121 nu=int(L[2][i + 1]); 138 link l(i) = "MPtcp:fork";139 //link l(i) = "ssi:fork";122 //link l(i) = "MPtcp:fork"; 123 link l(i) = "ssi:fork"; 140 124 open(l(i)); 141 125 write(l(i), quote(modp(eval(J), eval(p), eval(nu)))); … … 250 234 { 251 235 TQ=intersectZ(TQ,Q); 236 //TQ=intersect(TQ,Q); 252 237 P[size(P)+1]=list(Q,K); 253 238 } … … 278 263 JJ=stdZ(JJ); 279 264 TQ=intersectZ(TQ,JJ); 265 //TQ=intersect(TQ,JJ); 280 266 } 281 267 } … … 291 277 J=stdZ(J); 292 278 TQ=intersectZ(TQ,TES); 279 //TQ=intersect(TQ,TES); 293 280 if(size(reduce(TQ,J))!=0) 294 281 { … … 298 285 m++; 299 286 while(size(reduce(intersectZ(W,TQ),J))!=0) 287 //while(size(reduce(intersect(W,TQ),J))!=0) 300 288 { 301 289 //W=stdZ(addIdealZ(I,K^m)); … … 375 363 ideal I5=9c5,6d5; 376 364 ideal I6=17,a15,b15,c15,d15; 377 ideal I=intersect Z(I1,I2);378 I=intersect Z(I,I3);379 I=intersect Z(I,I4);380 I=intersect Z(I,I5);381 I=intersect Z(I,I6);365 ideal I=intersect(I1,I2); 366 I=intersect(I,I3); 367 I=intersect(I,I4); 368 I=intersect(I,I5); 369 I=intersect(I,I6); 382 370 primdecZ(I); 383 ideal J=intersect Z(ideal(17,a),ideal(17,a2,b));371 ideal J=intersect(ideal(17,a),ideal(17,a2,b)); 384 372 primdecZ(J); 385 ideal K=intersect Z(ideal(9,a+3),ideal(9,b+3));373 ideal K=intersect(ideal(9,a+3),ideal(9,b+3)); 386 374 primdecZ(K); 387 375 } … … 665 653 B=stdZ(B); 666 654 K=stdZ(intersectZ(K,B)); 655 //K=stdZ(intersect(K,B)); 667 656 setring Rhelp; 668 657 } … … 693 682 ideal M=radicalZ(J); 694 683 K=intersectZ(K,M); 684 //K=intersect(K,M); 695 685 } 696 686 return(K); … … 822 812 Q=extractZ(N,j,IS,B); 823 813 TQ=intersectZ(TQ,Q); 814 //TQ=intersect(TQ,Q); 824 815 } 825 816 setring Rhelp; … … 835 826 E=stdZ(E); 836 827 TQ=intersectZ(TQ,E); 828 //TQ=intersect(TQ,E); 837 829 } 838 830 } … … 872 864 { 873 865 E=intersectZ(M,E); 866 //E=intersect(M,E); 874 867 } 875 868 } … … 1278 1271 int i; 1279 1272 ideal K=intersectZ(I,ideal(f)); 1273 //ideal K=intersect(I,ideal(f)); 1280 1274 //=== K[i]/f; does not work in rings with integer! This should be replaced 1281 1275 //=== later … … 1303 1297 { 1304 1298 K=intersectZ(K,quotientOneZ(I,J[i])); 1299 //K=intersect(K,quotientOneZ(I,J[i])); 1305 1300 } 1306 1301 return(K); … … 1395 1390 { 1396 1391 K=intersectZ(K,L[i][1]); 1392 //K=intersect(K,L[i][1]); 1397 1393 } 1398 1394 i=size(reduce(K,stdZ(I)))+size(reduce(I,stdZ(K))); … … 1409 1405 ring R1=integer,(a,b,c,d,e,f,g),dp; 1410 1406 ideal I=a2+2de+2cf+2bg+a, 1411 Â Â Â Â Â Â Â2ab+e2+2df+2cg+b,1412 Â Â Â Â Â Â Âb2+2ac+2ef+2dg+c,1413 Â Â Â Â Â Â Â2bc+2ad+f2+2eg+d,1414 Â Â Â Â Â Â Âc2+2bd+2ae+2fg+e,1415 Â Â Â Â Â Â Â2cd+2be+2af+g2+f,1416 Â Â Â Â Â Â Âd2+2ce+2bf+2ag+g;1407 2ab+e2+2df+2cg+b, 1408 b2+2ac+2ef+2dg+c, 1409 2bc+2ad+f2+2eg+d, 1410 c2+2bd+2ae+2fg+e, 1411 2cd+2be+2af+g2+f, 1412 d2+2ce+2bf+2ag+g; 1417 1413 1418 1414 ring R2=integer,(a,b,c,d,e,f,g),dp; 1419 1415 ideal I=181*32003, 1420 1416 a2+2de+2cf+2bg+a, 1421 Â Â Â Â Â Â Â2ab+e2+2df+2cg+b,1422 Â Â Â Â Â Â Âb2+2ac+2ef+2dg+c,1423 Â Â Â Â Â Â Â2bc+2ad+f2+2eg+d,1424 Â Â Â Â Â Â Âc2+2bd+2ae+2fg+e,1425 Â Â Â Â Â Â Â2cd+2be+2af+g2+f,1426 Â Â Â Â Â Â Âd2+2ce+2bf+2ag+g;1427 Â 1417 2ab+e2+2df+2cg+b, 1418 b2+2ac+2ef+2dg+c, 1419 2bc+2ad+f2+2eg+d, 1420 c2+2bd+2ae+2fg+e, 1421 2cd+2be+2af+g2+f, 1422 d2+2ce+2bf+2ag+g; 1423 1428 1424 ring R3=integer,(w,z,y,x),dp; 1429 1425 ideal I=xzw+(y^2+y)*z^2, … … 1480 1476 ring R11=integer,(w,z,y,x),dp; 1481 1477 ideal I=(4*y^2*x^2+(4*y^3+4*y^2y)*xy^2y)*z^2, 1482 Â(x+y+1)*zw+(4*y^2*x4*y^34*y^2)*z^2,1483 Â (x2*y^2  2*y  1)*zw +Â(8*y^3*x + 8*y^4 + 8*y^3 + 2*y^2+y)*z^2,1478 (x+y+1)*zw+(4*y^2*x4*y^34*y^2)*z^2, 1479 (x2*y^2  2*y  1)*zw + (8*y^3*x + 8*y^4 + 8*y^3 + 2*y^2+y)*z^2, 1484 1480 ((y^3 + y^2)*x  y^2  y)*z^2, 1485 1481 (y +1)*zw + (y^3 y^2)*z^2, … … 1496 1492 ideal I=(((12*y+8)*x^2 +(2*y+2)*x)*zw +((15*y^2 4*y)*x4*y^2 y)*z^2, 1497 1493 x*w^2 +((12*y 8)*x+2*y)*zw +(15*y^2+4*y)*z^2, 1498 (81*y^4*x^2 +(54*y^3 12*y^2)*x12*y^3 3*y^2)*z^3, Â1494 (81*y^4*x^2 +(54*y^3 12*y^2)*x12*y^3 3*y^2)*z^3, 1499 1495 (24*yx+6*y^26*y)*z^2*w + (81*y^4*x + 81*y^3 + 24*y^2)*z^3, 1500 (48*x^2 + (30*y + 12)*x  6*y)*z^2*w + Â((81*y^3 54*y^2 24*y)*x1496 (48*x^2 + (30*y + 12)*x  6*y)*z^2*w + ((81*y^3 54*y^2 24*y)*x 1501 1497 21*y^2 6*y)*z^3, 1502 1498 (96*yx18*y^3 +18*y^224*y)*z^2*w +(243*y^5*x243*y^4 +72*y^3 … … 1517 1513 1518 1514 1519 ring R15=integer,(x,y,z),dp; Â1515 ring R15=integer,(x,y,z),dp; 1520 1516 ideal I=32003*181*64, 1521 1517 ((z^2z)*y^2 + (z^2 z)*y)*x; (z*y^3 + z*y^2)*x, … … 1535 1531 x(2)^2*x(3)*x(5)^2, 1536 1532 x(1)*x(2)*x(3)*x(5)^2, 1537 x(1)*x(3)^2*x(5)^2, Â1533 x(1)*x(3)^2*x(5)^2, 1538 1534 x(3)^3*x(5)^2, 1539 1535 x(3)^3*x(4)*x(5), … … 1541 1537 x(1)*x(2)*x(3)*x(4)*x(5), 1542 1538 x(2)^2*x(3)*x(4)*x(5), 1543 x(2)^2*x(4)^2*x(5), Â1539 x(2)^2*x(4)^2*x(5), 1544 1540 x(1)*x(2)*x(4)^2*x(5), 1545 1541 x(1)*x(4)^3*x(5), … … 1547 1543 I=intersectZ(I,ideal(64*181,x(1)^2)); 1548 1544 1549 ring R17=integer,(x,y,z),dp; Â1545 ring R17=integer,(x,y,z),dp; 1550 1546 ideal I=374, 1551 1547 (z+2)^8140z6+2622*(z+2)^41820*(z+2)^2+169, 1552 Â Â Â Â17y*(z+2)^4374*y*(z+2)^2+221y+2z7281z5+5240z33081z,1553 Â Â Â Â204y2+136yz33128yz+z6149z4+2739z2+117,1554 Â Â Â Â17xz4374xz2+221x+2z7281z5+5240z33081z,1555 Â Â Â Â136xy136xz136yz+2z6281z4+5376z23081,1556 Â Â Â Â204x2+136xz33128xz+z6149z4+2739z2+117;1548 17y*(z+2)^4374*y*(z+2)^2+221y+2z7281z5+5240z33081z, 1549 204y2+136yz33128yz+z6149z4+2739z2+117, 1550 17xz4374xz2+221x+2z7281z5+5240z33081z, 1551 136xy136xz136yz+2z6281z4+5376z23081, 1552 204x2+136xz33128xz+z6149z4+2739z2+117; 1557 1553 1558 1554 ring R18=integer,(B,D,F,b,d,f),dp; … … 1592 1588 x3+y3+z3+t3+u3+v3; 1593 1589 1594 ring R22=integer,(s,p,S,P,T,F,f),dp; Â1590 ring R22=integer,(s,p,S,P,T,F,f),dp; 1595 1591 ideal I=35, 1596 1592 2*TS*s2*F+2,
Note: See TracChangeset
for help on using the changeset viewer.