Changeset 63d2db in git for kernel/GBEngine/kutil.cc
- Timestamp:
- Nov 18, 2022, 5:57:57 PM (17 months ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 3d3fd4c30ec2e66b2e1aca5ef773826fb9ae3924d65cbb52476edc058eb3eb9d38c122de988f2c4c
- Parents:
- deedf3d8f501628fbee217e6e83dcbe439b95645
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/GBEngine/kutil.cc
rdeedf3 r63d2db 5050 5050 #endif 5051 5051 5052 /*2 Pos for rings T: Here I am5053 * looks up the position of p in T5054 * set[0] is the smallest with respect to the ordering-procedure5055 * totaldegree,pComp5056 */5057 int posInTrg0 (const TSet set,const int length,LObject &p)5058 {5059 if (length==-1) return 0;5060 int o = p.GetpFDeg();5061 int op = set[length].GetpFDeg();5062 int i;5063 int an = 0;5064 int en = length;5065 int cmp_int = currRing->OrdSgn;5066 if ((op < o) || (pLmCmp(set[length].p,p.p)== -cmp_int))5067 return length+1;5068 int cmp;5069 loop5070 {5071 if (an >= en-1)5072 {5073 op = set[an].GetpFDeg();5074 if (op > o) return an;5075 if (op < 0) return en;5076 cmp = pLmCmp(set[an].p,p.p);5077 if (cmp == cmp_int) return an;5078 if (cmp == -cmp_int) return en;5079 if (nGreater(pGetCoeff(p.p), pGetCoeff(set[an].p))) return en;5080 return an;5081 }5082 i = (an + en) / 2;5083 op = set[i].GetpFDeg();5084 if (op > o) en = i;5085 else if (op < o) an = i;5086 else5087 {5088 cmp = pLmCmp(set[i].p,p.p);5089 if (cmp == cmp_int) en = i;5090 else if (cmp == -cmp_int) an = i;5091 else if (nGreater(pGetCoeff(p.p), pGetCoeff(set[i].p))) an = i;5092 else en = i;5093 }5094 }5095 }5096 /*5097 int o = p.GetpFDeg();5098 int op = set[length].GetpFDeg();5099 5100 if ((op < o)5101 || ((op == o) && (pLmCmp(set[length].p,p.p) != currRing->OrdSgn)))5102 return length+1;5103 5104 int i;5105 int an = 0;5106 int en= length;5107 5108 loop5109 {5110 if (an >= en-1)5111 {5112 op= set[an].GetpFDeg();5113 if ((op > o)5114 || (( op == o) && (pLmCmp(set[an].p,p.p) == currRing->OrdSgn)))5115 return an;5116 return en;5117 }5118 i=(an+en) / 2;5119 op = set[i].GetpFDeg();5120 if (( op > o)5121 || (( op == o) && (pLmCmp(set[i].p,p.p) == currRing->OrdSgn)))5122 en=i;5123 else5124 an=i;5125 }5126 }5127 */5128 5052 /*2 5129 5053 * looks up the position of p in T … … 11672 11596 #endif 11673 11597 else if (strat->posInT==posInT_EcartpLength) printf("posInT_EcartpLength\n"); 11674 else if (strat->posInT==posInTrg0) printf("posInTrg0\n");11675 11598 else printf("%p\n",(void*)strat->posInT); 11676 11599 printf("posInL: ");
Note: See TracChangeset
for help on using the changeset viewer.