Changeset cda0b0 in git for kernel/kstd2.cc
- Timestamp:
- Dec 6, 2013, 9:11:52 AM (10 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- d5856fbe65f58da80d3a39417a5314d658f97342
- Parents:
- 0c15dc1d046c89a6a771b4f899e787a85af175ce
- git-author:
- Christian Eder <ederc@mathematik.uni-kl.de>2013-12-06 09:11:52+01:00
- git-committer:
- Christian Eder <ederc@mathematik.uni-kl.de>2013-12-12 13:51:29+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/kstd2.cc
r0c15dc rcda0b0 55 55 #define SBA_TAIL_RED 1 56 56 #define SBA_PRODUCT_CRITERION 0 57 #define SBA_PRINT_ZERO_REDUCTIONS 058 #define SBA_PRINT_REDUCTION_STEPS 059 #define SBA_PRINT_OPERATIONS 060 #define SBA_PRINT_SIZE_G 061 #define SBA_PRINT_SIZE_SYZ 057 #define SBA_PRINT_ZERO_REDUCTIONS 1 58 #define SBA_PRINT_REDUCTION_STEPS 1 59 #define SBA_PRINT_OPERATIONS 1 60 #define SBA_PRINT_SIZE_G 1 61 #define SBA_PRINT_SIZE_SYZ 1 62 62 #define SBA_PRINT_PRODUCT_CRITERION 0 63 63 … … 1715 1715 for (int i=0; i<sort->length();++i) 1716 1716 F->m[i] = F1->m[(*sort)[i]-1]; 1717 #if 01717 #if 1 1718 1718 printf("SBA COMPUTATIONS DONE IN THE FOLLOWING RING:\n"); 1719 1719 rWrite (currRing); 1720 printf("ordSgn = %d\n",currRing->OrdSgn); 1720 1721 printf("\n"); 1721 1722 #endif … … 2054 2055 strat->enterS(strat->P, pos, strat, strat->tl); 2055 2056 if(strat->sbaOrder != 1) 2057 { 2058 BOOLEAN overwrite = TRUE; 2059 for (int tk=0; tk<strat->sl+1; tk++) 2060 { 2061 if (pGetComp(strat->sig[tk]) == pGetComp(strat->P.sig)) 2062 { 2063 //printf("TK %d / %d\n",tk,strat->sl); 2064 overwrite = FALSE; 2065 break; 2066 } 2067 } 2068 //printf("OVERWRITE %d\n",overwrite); 2069 if (overwrite) 2070 { 2071 int cmp = pGetComp(strat->P.sig); 2072 int* vv = (int*)omAlloc((currRing->N+1)*sizeof(int)); 2073 pGetExpV (strat->P.p,vv); 2074 pSetExpV (strat->P.sig, vv); 2075 pSetComp (strat->P.sig,cmp); 2076 2077 strat->P.sevSig = pGetShortExpVector (strat->P.sig); 2078 int i; 2079 for(int ps=0;ps<strat->sl+1;ps++) 2080 { 2081 2082 strat->newt = TRUE; 2083 if (strat->syzl == strat->syzmax) 2084 { 2085 pEnlargeSet(&strat->syz,strat->syzmax,setmaxTinc); 2086 strat->sevSyz = (unsigned long*) omRealloc0Size(strat->sevSyz, 2087 (strat->syzmax)*sizeof(unsigned long), 2088 ((strat->syzmax)+setmaxTinc) 2089 *sizeof(unsigned long)); 2090 strat->syzmax += setmaxTinc; 2091 } 2092 LObject Q; 2093 Q.sig = pCopy(strat->P.sig); 2094 // add LM(F->m[i]) to the signature to get a Schreyer order 2095 // without changing the underlying polynomial ring at all 2096 if (strat->sbaOrder == 0) 2097 p_ExpVectorAdd (Q.sig,strat->S[ps],currRing); 2098 // since p_Add_q() destroys all input 2099 // data we need to recreate help 2100 // each time 2101 // ---------------------------------------------------------- 2102 // in the Schreyer order we always know that the multiplied 2103 // module monomial strat->P.sig gives the leading monomial of 2104 // the corresponding principal syzygy 2105 // => we do not need to compute the "real" syzygy completely 2106 poly help = pCopy(strat->sig[ps]); 2107 p_ExpVectorAdd (help,strat->P.p,currRing); 2108 Q.sig = p_Add_q(Q.sig,help,currRing); 2109 //printf("%d. SYZ ",i+1); 2110 //pWrite(strat->syz[i]); 2111 Q.sevSig = p_GetShortExpVector(Q.sig,currRing); 2112 i = posInSyz(strat, Q.sig); 2113 enterSyz(Q, strat, i); 2114 } 2115 } 2116 } 2117 // deg - idx - lp/rp 2118 // => we need to add syzygies with indices > pGetComp(strat->P.sig) 2119 /* 2120 if(strat->sbaOrder == 3) 2056 2121 { 2057 2122 BOOLEAN overwrite = TRUE; … … 2112 2177 } 2113 2178 } 2179 */ 2114 2180 //#if 1 2115 2181 #if DEBUGF50 2116 //printf("---------------------------\n");2182 printf("---------------------------\n"); 2117 2183 Print(" %d. ELEMENT ADDED TO GCURR:\n",strat->sl+1); 2118 2184 Print("LEAD POLY: "); pWrite(pHead(strat->S[strat->sl]));
Note: See TracChangeset
for help on using the changeset viewer.