Changeset b7cfaf in git for kernel/ideals.cc
- Timestamp:
- Jul 26, 2011, 11:34:05 AM (12 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
- Children:
- 86152998894ac968561dfca4ba268464c73e7b74
- Parents:
- 1558d57b639351ad0ad10d1e5e337419bfcf21fb
- git-author:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2011-07-26 11:34:05+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 12:53:34+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ideals.cc
r1558d5 rb7cfaf 69 69 70 70 homog = idHomModule(h1,currQuotient,&wth); 71 if (rHasGlobalOrdering _currRing())71 if (rHasGlobalOrdering(currRing)) 72 72 { 73 73 if(!homog) … … 92 92 IDELEMS(e) = 16; 93 93 h2 = kStd(h1,currQuotient,isNotHomog,NULL); 94 h3 = idMaxIdeal( );94 h3 = idMaxIdeal(1); 95 95 h4=idMult(h2,h3); 96 96 idDelete(&h3); … … 235 235 /* else qresult->next = NULL;*/ 236 236 return result; 237 }238 239 /*2240 * verschiebt die Indizees der Modulerzeugenden um i241 */242 void pShift (poly * p,int i)243 {244 poly qp1 = *p,qp2 = *p;/*working pointers*/245 int j = pMaxComp(*p),k = pMinComp(*p);246 247 if (j+i < 0) return ;248 while (qp1 != NULL)249 {250 if ((pGetComp(qp1)+i > 0) || ((j == -i) && (j == k)))251 {252 pAddComp(qp1,i);253 pSetmComp(qp1);254 qp2 = qp1;255 pIter(qp1);256 }257 else258 {259 if (qp2 == *p)260 {261 pIter(*p);262 pLmDelete(&qp2);263 qp2 = *p;264 qp1 = *p;265 }266 else267 {268 qp2->next = qp1->next;269 if (qp1!=NULL) pLmDelete(&qp1);270 qp1 = qp2->next;271 }272 }273 }274 237 } 275 238 … … 385 348 ring orig_ring=currRing; 386 349 ring syz_ring=rCurrRingAssure_SyzComp(); 387 rSetSyzComp(length );350 rSetSyzComp(length, syz_ring); 388 351 389 352 while ((j>0) && (first->m[j-1]==NULL)) j--; … … 440 403 else 441 404 { 442 p = prMoveR(temp1->m[i], syz_ring );405 p = prMoveR(temp1->m[i], syz_ring,orig_ring); 443 406 } 444 407 temp1->m[i]=NULL; … … 524 487 ring orig_ring=currRing; 525 488 ring syz_ring=rCurrRingAssure_SyzComp(); 526 rSetSyzComp(syzComp );489 rSetSyzComp(syzComp, syz_ring); 527 490 528 491 bigmat = idInit(j,(k+1)*maxrk); … … 622 585 Warn("syzcomp too low, should be %d instead of %d",k,syzcomp); 623 586 syzcomp = k; 624 rSetSyzComp(k );587 rSetSyzComp(k,currRing); 625 588 } 626 589 h2->rank = syzcomp+i+1; … … 732 695 733 696 if (setSyzComp) 734 rSetSyzComp(k );697 rSetSyzComp(k,syz_ring); 735 698 736 699 if (orig_ring != syz_ring) … … 768 731 s_h3->rank -= k; 769 732 rChangeCurrRing(orig_ring); 770 s_h3 = idrMoveR_NoSort(s_h3, syz_ring );733 s_h3 = idrMoveR_NoSort(s_h3, syz_ring, orig_ring); 771 734 rKill(syz_ring); 772 735 #ifdef HAVE_PLURAL … … 810 773 ring dp_C_ring = rCurrRingAssure_dp_C(); 811 774 if (dp_C_ring != syz_ring) 812 e = idrMoveR_NoSort(e, syz_ring );775 e = idrMoveR_NoSort(e, syz_ring, dp_C_ring); 813 776 resolvente res = sySchreyerResolvente(e,-1,&length,TRUE, TRUE); 814 777 intvec * dummy = syBetti(res,length,®, *w); … … 853 816 ring syz_ring=rCurrRingAssure_SyzComp(); 854 817 855 rSetSyzComp(k );818 rSetSyzComp(k,syz_ring); 856 819 857 820 if (orig_ring != syz_ring) … … 876 839 idSkipZeroes(s_h3); 877 840 rChangeCurrRing(orig_ring); 878 s_h3 = idrMoveR_NoSort(s_h3, syz_ring );841 s_h3 = idrMoveR_NoSort(s_h3, syz_ring, orig_ring); 879 842 rKill(syz_ring); 880 843 idTest(s_h3); … … 925 888 ring orig_ring = currRing; 926 889 ring syz_ring = rCurrRingAssure_SyzComp(); 927 rSetSyzComp(k );890 rSetSyzComp(k,syz_ring); 928 891 929 892 ideal s_h1=h1; … … 1010 973 if (s_h2->m[j] != NULL) 1011 974 { 1012 q = prMoveR( s_h2->m[j], syz_ring );975 q = prMoveR( s_h2->m[j], syz_ring,orig_ring); 1013 976 s_h2->m[j] = NULL; 1014 977 … … 1030 993 for (i=0; i<IDELEMS(s_h3); i++) 1031 994 { 1032 s_h3->m[i] = prMoveR_NoSort(s_h3->m[i], syz_ring );995 s_h3->m[i] = prMoveR_NoSort(s_h3->m[i], syz_ring,orig_ring); 1033 996 } 1034 997 if (lift3) … … 1036 999 for (i=0; i<IDELEMS(*syz); i++) 1037 1000 { 1038 (*syz)->m[i] = prMoveR_NoSort((*syz)->m[i], syz_ring );1001 (*syz)->m[i] = prMoveR_NoSort((*syz)->m[i], syz_ring,orig_ring); 1039 1002 } 1040 1003 } … … 1132 1095 ring orig_ring=currRing; 1133 1096 ring syz_ring=rCurrRingAssure_SyzComp(); 1134 rSetSyzComp(k );1097 rSetSyzComp(k,syz_ring); 1135 1098 1136 1099 ideal s_mod, s_temp; … … 1241 1204 idDelete(&s_mod); 1242 1205 rChangeCurrRing(orig_ring); 1243 s_result = idrMoveR_NoSort(s_result, syz_ring );1244 s_rest = idrMoveR_NoSort(s_rest, syz_ring );1206 s_result = idrMoveR_NoSort(s_result, syz_ring, orig_ring); 1207 s_rest = idrMoveR_NoSort(s_rest, syz_ring, orig_ring); 1245 1208 rKill(syz_ring); 1246 1209 } … … 1492 1455 ring orig_ring=currRing; 1493 1456 ring syz_ring=rCurrRingAssure_SyzComp(); 1494 rSetSyzComp(kmax-1 );1457 rSetSyzComp(kmax-1,syz_ring); 1495 1458 if (orig_ring!=syz_ring) 1496 // s_h4 = idrMoveR_NoSort(s_h4,orig_ring );1497 s_h4 = idrMoveR(s_h4,orig_ring );1459 // s_h4 = idrMoveR_NoSort(s_h4,orig_ring, syz_ring); 1460 s_h4 = idrMoveR(s_h4,orig_ring, syz_ring); 1498 1461 idTest(s_h4); 1499 1462 #if 0 … … 1546 1509 { 1547 1510 rChangeCurrRing(orig_ring); 1548 s_h3 = idrMoveR_NoSort(s_h3, syz_ring );1511 s_h3 = idrMoveR_NoSort(s_h3, syz_ring, orig_ring); 1549 1512 rKill(syz_ring); 1550 1513 } … … 1785 1748 IDELEMS(h3) += 16; 1786 1749 } 1787 h3->m[j] = prMoveR( hh->m[k], tmpR );1750 h3->m[j] = prMoveR( hh->m[k], tmpR,origR); 1788 1751 hh->m[k] = NULL; 1789 1752 } … … 2052 2015 if (p!=NULL) 2053 2016 { 2054 int d= pFDeg(p,currRing);2017 int d=currRing->pFDeg(p,currRing); 2055 2018 loop 2056 2019 { 2057 2020 pIter(p); 2058 2021 if (p==NULL) break; 2059 if (d!= pFDeg(p,currRing))2022 if (d!=currRing->pFDeg(p,currRing)) 2060 2023 { 2061 2024 //pWrite(q); wrp(p); Print(" -> %d - %d\n",d,pFDeg(p,currRing)); … … 2138 2101 ring orig_ring=currRing; 2139 2102 ring syz_ring=rCurrRingAssure_SyzComp(); 2140 rSetSyzComp(length );2103 rSetSyzComp(length,syz_ring); 2141 2104 2142 2105 ideal s_temp; 2143 2106 if (orig_ring!=syz_ring) 2144 s_temp=idrMoveR_NoSort(arg,orig_ring );2107 s_temp=idrMoveR_NoSort(arg,orig_ring, syz_ring); 2145 2108 else 2146 2109 s_temp=arg; … … 2262 2225 ring orig_ring=currRing; 2263 2226 ring syz_ring=rCurrRingAssure_SyzComp(); 2264 rSetSyzComp(length );2227 rSetSyzComp(length, syz_ring); 2265 2228 ideal s_temp; 2266 2229 2267 2230 if (syz_ring != orig_ring) 2268 2231 { 2269 s_temp = idrMoveR_NoSort(temp, orig_ring );2232 s_temp = idrMoveR_NoSort(temp, orig_ring, syz_ring); 2270 2233 } 2271 2234 else … … 2305 2268 { 2306 2269 rChangeCurrRing(orig_ring); 2307 s_temp1 = idrMoveR_NoSort(s_temp1, syz_ring );2270 s_temp1 = idrMoveR_NoSort(s_temp1, syz_ring, orig_ring); 2308 2271 rKill(syz_ring); 2309 2272 // Hmm ... here seems to be a memory leak … … 2342 2305 while (i>0) 2343 2306 { 2344 (*result)[i]= pFDeg(mod->m[i],currRing)+(*weights)[pGetComp(mod->m[i])];2307 (*result)[i]=currRing->pFDeg(mod->m[i],currRing)+(*weights)[pGetComp(mod->m[i])]; 2345 2308 } 2346 2309 return result; … … 2554 2517 poly gg=pTakeOutComp(&(S->m[0]),2); 2555 2518 idDelete(&S); 2556 poly gcd_p=singclap_pdivide(f,gg );2519 poly gcd_p=singclap_pdivide(f,gg,r); 2557 2520 pDelete(&gg); 2558 2521 rChangeCurrRing(save_r);
Note: See TracChangeset
for help on using the changeset viewer.