Changeset 8a14df in git
- Timestamp:
- Oct 7, 2015, 2:44:00 PM (9 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- 5d9204728b9fa909f073b21e83c172b0b49dc2e2
- Parents:
- b4fbb84ad318878fabdaa4dbc73d6d1fcea0a9e8
- Location:
- kernel/GBEngine
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/GBEngine/kstd1.cc
rb4fbb8 r8a14df 1702 1702 #endif 1703 1703 int inittl = strat->tl; 1704 printf("\nReduce!!\n");1705 1704 red_result = strat->red(&strat->P,strat); 1706 printf("\nEnded :)\n");1707 1705 strat->tl = inittl; 1708 1706 #if ADIDEBUG -
kernel/GBEngine/kutil.cc
rb4fbb8 r8a14df 1719 1719 else 1720 1720 { 1721 enterT (h, strat,strat->tl+1);1721 enterT_strong(h, strat,strat->tl+1); 1722 1722 } 1723 1723 //#if 1 … … 8023 8023 pWrite(p.p); 8024 8024 #endif 8025 printf("\nenterT: neue hingefÃŒgt: lÀnge = %i, ecart = %i\n",p.length,p.ecart);8025 //printf("\nenterT: neue hingefÃŒgt: lÀnge = %i, ecart = %i\n",p.length,p.ecart); 8026 8026 8027 8027 if (strat->tailRing != currRing && pNext(p.p) != NULL) … … 8060 8060 //getchar();*/ 8061 8061 #endif 8062 kTest_T(&(strat->T[atT])); 8063 } 8064 8065 /*2 8066 * puts p to the set T at position atT 8067 */ 8068 void enterT_strong(LObject &p, kStrategy strat, int atT) 8069 { 8070 int i; 8071 8072 pp_Test(p.p, currRing, p.tailRing); 8073 assume(strat->tailRing == p.tailRing); 8074 // redMoraNF complains about this -- but, we don't really 8075 // neeed this so far 8076 assume(p.pLength == 0 || pLength(p.p) == p.pLength || rIsSyzIndexRing(currRing)); // modulo syzring 8077 assume(p.FDeg == p.pFDeg()); 8078 assume(!p.is_normalized || nIsOne(pGetCoeff(p.p))); 8079 8080 #ifdef KDEBUG 8081 // do not put an LObject twice into T: 8082 for(i=strat->tl;i>=0;i--) 8083 { 8084 if (p.p==strat->T[i].p) 8085 { 8086 printf("already in T at pos %d of %d, atT=%d\n",i,strat->tl,atT); 8087 return; 8088 } 8089 } 8090 #endif 8091 8092 #ifdef HAVE_TAIL_RING 8093 if (currRing!=strat->tailRing) 8094 { 8095 p.t_p=p.GetLmTailRing(); 8096 } 8097 #endif 8098 strat->newt = TRUE; 8099 if (atT < 0) 8100 atT = strat->posInT(strat->T, strat->tl, p); 8101 if (strat->tl == strat->tmax-1) 8102 enlargeT(strat->T,strat->R,strat->sevT,strat->tmax,setmaxTinc); 8103 if (atT <= strat->tl) 8104 { 8105 #ifdef ENTER_USE_MEMMOVE 8106 memmove(&(strat->T[atT+1]), &(strat->T[atT]), 8107 (strat->tl-atT+1)*sizeof(TObject)); 8108 memmove(&(strat->sevT[atT+1]), &(strat->sevT[atT]), 8109 (strat->tl-atT+1)*sizeof(unsigned long)); 8110 #endif 8111 for (i=strat->tl+1; i>=atT+1; i--) 8112 { 8113 #ifndef ENTER_USE_MEMMOVE 8114 strat->T[i] = strat->T[i-1]; 8115 strat->sevT[i] = strat->sevT[i-1]; 8116 #endif 8117 strat->R[strat->T[i].i_r] = &(strat->T[i]); 8118 } 8119 } 8120 8121 if ((strat->tailBin != NULL) && (pNext(p.p) != NULL)) 8122 { 8123 pNext(p.p)=p_ShallowCopyDelete(pNext(p.p), 8124 (strat->tailRing != NULL ? 8125 strat->tailRing : currRing), 8126 strat->tailBin); 8127 if (p.t_p != NULL) pNext(p.t_p) = pNext(p.p); 8128 } 8129 strat->T[atT] = (TObject) p; 8130 #if ADIDEBUG 8131 printf("\nenterT_strong: add in position %i\n",atT); 8132 pWrite(p.p); 8133 #endif 8134 //printf("\nenterT_strong: neue hingefÃŒgt: lÀnge = %i, ecart = %i\n",p.length,p.ecart); 8135 8136 if (strat->tailRing != currRing && pNext(p.p) != NULL) 8137 strat->T[atT].max = p_GetMaxExpP(pNext(p.p), strat->tailRing); 8138 else 8139 strat->T[atT].max = NULL; 8140 8141 strat->tl++; 8142 strat->R[strat->tl] = &(strat->T[atT]); 8143 strat->T[atT].i_r = strat->tl; 8144 assume(p.sev == 0 || pGetShortExpVector(p.p) == p.sev); 8145 strat->sevT[atT] = (p.sev == 0 ? pGetShortExpVector(p.p) : p.sev); 8146 #if 0 8147 #ifdef HAVE_RINGS 8148 if(rField_is_Ring(currRing) && !n_IsUnit(p.p->coef, currRing->cf)) 8149 { 8150 #if ADIDEBUG_NF 8151 printf("\nDas ist p:\n");pWrite(p.p); 8152 #endif 8153 for(i=strat->tl;i>=0;i--) 8154 { 8155 if(strat->T[i].ecart <= p.ecart && pLmDivisibleBy(strat->T[i].p,p.p)) 8156 { 8157 #if ADIDEBUG_NF 8158 printf("\nFound one: %i\n",i);pWrite(strat->T[i].p); 8159 #endif 8160 enterOneStrongPoly(i,p.p,p.ecart,0,strat,0 , TRUE); 8161 } 8162 } 8163 } 8164 /* 8165 printf("\nThis is T:\n"); 8166 for(i=strat->tl;i>=0;i--) 8167 { 8168 pWrite(strat->T[i].p); 8169 } 8170 //getchar();*/ 8171 #endif 8172 #endif 8062 8173 kTest_T(&(strat->T[atT])); 8063 8174 } -
kernel/GBEngine/kutil.h
rb4fbb8 r8a14df 530 530 void enterSyz (LObject &p,kStrategy strat, int atT); 531 531 void enterT (LObject &p,kStrategy strat, int atT = -1); 532 void enterT_strong (LObject &p,kStrategy strat, int atT = -1); 532 533 void cancelunit (LObject* p,BOOLEAN inNF=FALSE); 533 534 void HEckeTest (poly pp,kStrategy strat);
Note: See TracChangeset
for help on using the changeset viewer.