Changeset eac8710 in git
- Timestamp:
- Jul 14, 2014, 4:37:27 PM (9 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- c5175d6574bf88dc625986c2a215794ee8e919c3
- Parents:
- e6f4fc67a2bddded19c7ee7db1e77e19023b5793
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/primdec.lib
re6f4fc6 reac8710 65 65 " 66 66 { 67 ASSUME(1, hasFieldCoefficient(basering) ); 67 68 ASSUME(1, not isQuotientRing(basering) ) ; 68 69 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 93 94 " 94 95 { 96 ASSUME(1, hasFieldCoefficient(basering) ); 95 97 ASSUME(1, not isQuotientRing(basering) ) ; 96 98 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 160 162 proc minSat(ideal inew, ideal h) 161 163 { 164 ASSUME(0, hasFieldCoefficient(basering) ); 162 165 ASSUME(0, not isQuotientRing(basering) ) ; 163 166 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 208 211 static proc quotMin(list tsil) 209 212 { 213 ASSUME(1, hasFieldCoefficient(basering) ); 210 214 ASSUME(1, not isQuotientRing(basering) ) ; 211 215 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 270 274 static proc testFactor(list act,poly p) 271 275 { 276 ASSUME(1, hasFieldCoefficient(basering) ); 272 277 ASSUME(1, not isQuotientRing(basering) ) ; 273 278 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 370 375 proc idealsEqual( ideal k, ideal j) 371 376 { 377 ASSUME(0, hasFieldCoefficient(basering) ); 372 378 return(stdIdealsEqual(std(k),std(j))); 373 379 } … … 377 383 int j; 378 384 385 ASSUME(1, hasFieldCoefficient(basering) ); 379 386 if(size(k1)==size(k2)) 380 387 { … … 394 401 { 395 402 int j; 396 403 ASSUME(1, hasFieldCoefficient(basering) ); 397 404 if(size(k1)==size(k2)) 398 405 { … … 416 423 proc primaryTest (ideal i, poly p) 417 424 { 425 ASSUME(0, hasFieldCoefficient(basering) ); 418 426 ASSUME(0, not isQuotientRing(basering) ) ; 419 427 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 534 542 static proc splitPrimary(list l,ideal ser,int @wr,list sact) 535 543 { 544 ASSUME(1, hasFieldCoefficient(basering) ); 536 545 ASSUME(1, not isQuotientRing(basering) ) ; 537 546 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 725 734 static proc splitCharp(list l) 726 735 { 736 ASSUME(1, hasFieldCoefficient(basering) ); 727 737 ASSUME(1, not isQuotientRing(basering) ) ; 728 738 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 855 865 " 856 866 { 867 ASSUME(0, hasFieldCoefficient(basering) ); 857 868 ASSUME(0, not isQuotientRing(basering) ) ; 858 869 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 1316 1327 proc extF(list l,list #) 1317 1328 { 1329 ASSUME(0, hasFieldCoefficient(basering) ); 1318 1330 ASSUME(0, not isQuotientRing(basering) ) ; 1319 1331 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 1409 1421 //the radical of the intersection of the pe[l] is equal to the radical of i 1410 1422 1423 ASSUME(0, hasFieldCoefficient(basering) ); 1411 1424 ASSUME(0, not isQuotientRing(basering) ) ; 1412 1425 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 1501 1514 //i.e. var(i)----->var(i)^(p^v[i]) 1502 1515 1516 ASSUME(0, hasFieldCoefficient(basering) ); 1503 1517 ASSUME(0, not isQuotientRing(basering) ) ; 1504 1518 ASSUME(0, hasGlobalOrdering(basering) ) ; 1519 1505 1520 if(homog(I)==1){return(maxideal(1));} 1506 1521 … … 1542 1557 //and transforms it back to a decomposition of i 1543 1558 1559 ASSUME(0, hasFieldCoefficient(basering) ); 1544 1560 ASSUME(0, not isQuotientRing(basering) ) ; 1545 1561 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 1588 1604 " 1589 1605 { 1606 ASSUME(1, hasFieldCoefficient(basering) ); 1590 1607 ASSUME(1, not isQuotientRing(basering) ) ; 1591 1608 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 1667 1684 " 1668 1685 { 1686 ASSUME(1, hasFieldCoefficient(basering) ); 1669 1687 ASSUME(1, not isQuotientRing(basering) ) ; 1670 1688 ASSUME(1, hasGlobalOrdering(basering) ) ; 1671 1689 int k,j; 1672 1690 intvec m,n,v,w; … … 1793 1811 " 1794 1812 { 1813 ASSUME(1, hasFieldCoefficient(basering) ); 1795 1814 ASSUME(1, not isQuotientRing(basering) ) ; 1796 1815 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 1861 1880 " 1862 1881 { 1882 ASSUME(1, hasFieldCoefficient(basering) ); 1863 1883 ASSUME(1, not isQuotientRing(basering) ) ; 1864 1884 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 1927 1947 " 1928 1948 { 1949 ASSUME(1, hasFieldCoefficient(basering) ); 1929 1950 ASSUME(0, not isQuotientRing(basering) ) ; 1930 ASSUME(0, hasGlobalOrdering(basering) ) ;1951 ASSUME(0, hasGlobalOrdering(basering) ) ; 1931 1952 def @P=basering; 1932 1953 if(size(i)==0){return(list(ideal(0)));} … … 2055 2076 static proc primT(ideal i) 2056 2077 { 2078 ASSUME(1, hasFieldCoefficient(basering) ); 2057 2079 ASSUME(1, not isQuotientRing(basering) ) ; 2058 ASSUME(1, hasGlobalOrdering(basering) ) ;2080 ASSUME(1, hasGlobalOrdering(basering) ) ; 2059 2081 2060 2082 //assumes that all generators of i are irreducible … … 2085 2107 " 2086 2108 { 2109 ASSUME(1, hasFieldCoefficient(basering) ); 2087 2110 ASSUME(1, not isQuotientRing(basering) ) ; 2088 2111 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 2378 2401 " 2379 2402 { 2380 2403 ASSUME(0, hasFieldCoefficient(basering) ); 2381 2404 ASSUME(0, not isQuotientRing(basering) ) ; 2382 2405 if(attrib(basering,"global")!=1) … … 2488 2511 " 2489 2512 { 2513 ASSUME(0, hasFieldCoefficient(basering) ); 2490 2514 ASSUME(0, not isQuotientRing(basering) ) ; 2491 2515 if(attrib(basering,"global")!=1) … … 2618 2642 proc algeDeco(ideal i, int w) 2619 2643 { 2644 ASSUME(0, hasFieldCoefficient(basering) ); 2620 2645 ASSUME(0, not isQuotientRing(basering) ) ; 2621 ASSUME(0, hasGlobalOrdering(basering) ) ;2646 ASSUME(0, hasGlobalOrdering(basering) ) ; 2622 2647 2623 2648 //reduces primery decomposition over algebraic extensions to … … 2768 2793 " 2769 2794 { 2795 ASSUME(1, hasFieldCoefficient(basering) ); 2770 2796 ASSUME(1, not isQuotientRing(basering) ) ; 2771 2797 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 3754 3780 //the p^e th power of the coefficients of f 3755 3781 { 3782 ASSUME(1, hasFieldCoefficient(basering) ); 3756 3783 ASSUME(1, not isQuotientRing(basering) ) ; 3757 ASSUME(1, hasGlobalOrdering(basering) ) ;3784 ASSUME(1, hasGlobalOrdering(basering) ) ; 3758 3785 3759 3786 int i; … … 3777 3804 EXAMPLE: example sep; shows an example 3778 3805 { 3806 ASSUME(0, hasFieldCoefficient(basering) ); 3779 3807 ASSUME(0, not isQuotientRing(basering) ) ; 3780 ASSUME(0, hasGlobalOrdering(basering) ) ;3808 ASSUME(0, hasGlobalOrdering(basering) ) ; 3781 3809 3782 3810 def R=basering; … … 3830 3858 EXAMPLE: example zeroRad; shows an example 3831 3859 { 3860 ASSUME(0, hasFieldCoefficient(basering) ); 3832 3861 ASSUME(0, not isQuotientRing(basering) ) ; 3833 ASSUME(0, hasGlobalOrdering(basering) ) ;3862 ASSUME(0, hasGlobalOrdering(basering) ) ; 3834 3863 3835 3864 if(homog(I)==1){return(maxideal(1));} … … 3929 3958 " 3930 3959 { 3960 ASSUME(0, hasFieldCoefficient(basering) ); 3931 3961 ASSUME(0, not isQuotientRing(basering) ) ; 3932 3962 if(attrib(basering,"global")!=1) … … 4057 4087 static proc int_ass_primary_e(ideal i, int e) 4058 4088 { 4089 ASSUME(1, hasFieldCoefficient(basering) ); 4059 4090 ASSUME(1, not isQuotientRing(basering) ) ; 4060 4091 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4103 4134 static proc analyze(list pr) 4104 4135 { 4136 ASSUME(1, hasFieldCoefficient(basering) ); 4105 4137 ASSUME(1, not isQuotientRing(basering) ) ; 4106 ASSUME(1, hasGlobalOrdering(basering) ) ;4138 ASSUME(1, hasGlobalOrdering(basering) ) ; 4107 4139 4108 4140 int ii,jj; … … 4136 4168 static proc simplifyIdeal(ideal i) 4137 4169 { 4170 ASSUME(1, hasFieldCoefficient(basering) ); 4138 4171 ASSUME(1, not isQuotientRing(basering) ) ; 4139 4172 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4243 4276 static proc min_ass_prim_charsets0 (ideal PS) 4244 4277 { 4278 ASSUME(1, hasFieldCoefficient(basering) ); 4245 4279 ASSUME(1, not isQuotientRing(basering) ) ; 4246 4280 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4347 4381 static proc min_ass_prim_charsets1 (ideal PS) 4348 4382 { 4383 ASSUME(1, hasFieldCoefficient(basering) ); 4349 4384 ASSUME(1, not isQuotientRing(basering) ) ; 4350 4385 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4489 4524 static proc prim_dec(ideal I, int choose) 4490 4525 { 4526 ASSUME(1, hasFieldCoefficient(basering) ); 4491 4527 ASSUME(1, not isQuotientRing(basering) ) ; 4492 4528 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4715 4751 static proc pseudo_prim_dec_charsets (ideal I, ideal SI, int choo) 4716 4752 { 4753 ASSUME(1, hasFieldCoefficient(basering) ); 4717 4754 ASSUME(1, not isQuotientRing(basering) ) ; 4718 4755 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4768 4805 static proc pseudo_prim_dec_special_charsets (ideal SI,list V6, int choo) 4769 4806 { 4807 ASSUME(1, hasFieldCoefficient(basering) ); 4770 4808 ASSUME(1, not isQuotientRing(basering) ) ; 4771 4809 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4869 4907 static proc pseudo_prim_dec_i (ideal SI, list L) 4870 4908 { 4909 ASSUME(1, hasFieldCoefficient(basering) ); 4871 4910 ASSUME(1, not isQuotientRing(basering) ) ; 4872 4911 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 4941 4980 static proc extraction (ideal SI, ideal SP) 4942 4981 { 4982 ASSUME(1, hasFieldCoefficient(basering) ); 4943 4983 ASSUME(1, not isQuotientRing(basering) ) ; 4944 4984 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 5049 5089 static proc minsat(ideal SI, poly p) 5050 5090 { 5091 ASSUME(1, hasFieldCoefficient(basering) ); 5051 5092 ASSUME(1, not isQuotientRing(basering) ) ; 5052 5093 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 5098 5139 static proc minsat_ppd(ideal SI, ideal fac) 5099 5140 { 5141 ASSUME(1, hasFieldCoefficient(basering) ); 5100 5142 ASSUME(1, not isQuotientRing(basering) ) ; 5101 5143 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 5145 5187 static proc minquot(list tsil) 5146 5188 { 5189 ASSUME(1, hasFieldCoefficient(basering) ); 5147 5190 ASSUME(1, not isQuotientRing(basering) ) ; 5148 5191 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 5218 5261 static proc special_ideals_equal( ideal k1, ideal k2) 5219 5262 { 5263 ASSUME(1, hasFieldCoefficient(basering) ); 5220 5264 ASSUME(1, not isQuotientRing(basering) ) ; 5221 5265 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 5288 5332 " 5289 5333 { 5334 ASSUME(0, hasFieldCoefficient(basering) ); 5290 5335 ASSUME(0, not isQuotientRing(basering) ) ; 5291 5336 if(size(#)>0) … … 5365 5410 " 5366 5411 { 5412 ASSUME(0, hasFieldCoefficient(basering) ); 5367 5413 ASSUME(0, not isQuotientRing(basering) ) ; 5368 5414 if (char(basering) != 0) … … 5534 5580 " 5535 5581 { 5582 ASSUME(0, hasFieldCoefficient(basering) ); 5536 5583 ASSUME(0, not isQuotientRing(basering) ) ; 5537 5584 if(size(#)>1) … … 5610 5657 " 5611 5658 { 5659 ASSUME(0, hasFieldCoefficient(basering) ); 5612 5660 ASSUME(0, not isQuotientRing(basering) ) ; 5613 5661 if(size(#)>0) … … 5715 5763 " 5716 5764 { 5765 ASSUME(0, hasFieldCoefficient(basering) ); 5717 5766 ASSUME(0, not isQuotientRing(basering) ) ; 5718 5767 if(size(#)>1) … … 5769 5818 " 5770 5819 { 5820 ASSUME(0, hasFieldCoefficient(basering) ); 5771 5821 ASSUME(0, not isQuotientRing(basering) ) ; 5772 5822 if(attrib(basering,"global")!=1) … … 5806 5856 " 5807 5857 { 5858 ASSUME(0, hasFieldCoefficient(basering) ); 5808 5859 ASSUME(0, not isQuotientRing(basering) ) ; 5809 5860 dbprint(printlevel - voice, "Radical, version 2006.05.08"); … … 5990 6041 static proc radicalKL(ideal I, ideal ser, list #) 5991 6042 { 6043 ASSUME(1, hasFieldCoefficient(basering) ); 5992 6044 ASSUME(1, not isQuotientRing(basering) ) ; 5993 6045 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 6030 6082 // obtained in intermediate steps. 6031 6083 { 6084 ASSUME(1, hasFieldCoefficient(basering) ); 6032 6085 ASSUME(1, not isQuotientRing(basering) ) ; 6033 6086 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 6115 6168 // only equiradical is required. 6116 6169 // It is used to set the value of done.) 6170 ASSUME(1, hasFieldCoefficient(basering) ); 6117 6171 ASSUME(1, not isQuotientRing(basering) ) ; 6118 6172 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 6390 6444 // Output: ideal. Intersection of some primes of I different from the ones in P. 6391 6445 { 6446 ASSUME(1, hasFieldCoefficient(basering) ); 6392 6447 ASSUME(1, not isQuotientRing(basering) ) ; 6393 6448 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 6460 6515 " 6461 6516 { 6517 ASSUME(0, hasFieldCoefficient(basering) ); 6462 6518 ASSUME(0, not isQuotientRing(basering) ) ; 6463 6519 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 6554 6610 " 6555 6611 { 6612 ASSUME(1, hasFieldCoefficient(basering) ); 6556 6613 ASSUME(1, not isQuotientRing(basering) ) ; 6557 6614 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 6603 6660 " 6604 6661 { 6662 ASSUME(0, hasFieldCoefficient(basering) ); 6605 6663 ASSUME(0, not isQuotientRing(basering) ) ; 6606 6664 if(attrib(basering,"global")!=1) … … 6654 6712 " 6655 6713 { 6714 ASSUME(0, hasFieldCoefficient(basering) ); 6656 6715 ASSUME(0, not isQuotientRing(basering) ) ; 6657 6716 if(attrib(basering,"global")!=1) … … 6693 6752 " 6694 6753 { 6754 ASSUME(0, hasFieldCoefficient(basering) ); 6695 6755 ASSUME(0, not isQuotientRing(basering) ) ; 6696 6756 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 6728 6788 " 6729 6789 { 6790 ASSUME(0, hasFieldCoefficient(basering) ); 6730 6791 ASSUME(0, not isQuotientRing(basering) ) ; 6731 6792 if(attrib(basering,"global")!=1) … … 6848 6909 " 6849 6910 { 6911 ASSUME(1, hasFieldCoefficient(basering) ); 6850 6912 ASSUME(1, not isQuotientRing(basering) ) ; 6851 6913 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 7753 7815 static proc newReduction(ideal @j, ideal ser, intvec @hilb, intvec @w, int jdim, int abspri, int @wr, list data) 7754 7816 { 7817 ASSUME(1, hasFieldCoefficient(basering) ); 7755 7818 ASSUME(1, not isQuotientRing(basering) ) ; 7756 7819 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 8054 8117 // associated primes and the primary components corresponding to these primes. 8055 8118 { 8119 ASSUME(1, hasFieldCoefficient(basering) ); 8056 8120 ASSUME(1, not isQuotientRing(basering) ) ; 8057 8121 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 8097 8161 static proc minAssSLIteration(ideal I, ideal P); 8098 8162 { 8163 ASSUME(1, hasFieldCoefficient(basering) ); 8099 8164 ASSUME(1, not isQuotientRing(basering) ) ; 8100 8165 ASSUME(1, hasGlobalOrdering(basering) ) ; … … 8152 8217 " 8153 8218 { 8219 ASSUME(0, hasFieldCoefficient(basering) ); 8154 8220 ASSUME(0, not isQuotientRing(basering) ) ; 8155 8221 ASSUME(0, hasGlobalOrdering(basering) ) ; … … 8255 8321 " 8256 8322 { 8323 ASSUME(0, hasFieldCoefficient(basering) ); 8257 8324 ASSUME(0, not isQuotientRing(basering) ) ; 8258 8325 ASSUME(0, hasGlobalOrdering(basering) ) ;
Note: See TracChangeset
for help on using the changeset viewer.