Changeset 0661780 in git
- Timestamp:
- Nov 18, 2022, 5:51:19 PM (3 months ago)
- Branches:
- (u'spielwiese', 'ad2543eab51733612ba7d118afc77edca719600e')
- Children:
- deedf3d8f501628fbee217e6e83dcbe439b95645
- Parents:
- 9a41ab03572f2614499d8f7a9066dd5e27cbf7ac
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/GBEngine/kutil.cc
r9a41ab0 r0661780 6997 6997 } 6998 6998 #endif 6999 }7000 }7001 7002 TObject* kFindDivisibleByInS_T_noCF(kStrategy strat, int end_pos, LObject* L, TObject *T, long ecart)7003 {7004 int j = 0;7005 const unsigned long not_sev = ~L->sev;7006 const unsigned long* sev = strat->sevS;7007 poly p;7008 ring r;7009 L->GetLm(p, r);7010 7011 assume(~not_sev == p_GetShortExpVector(p, r));7012 7013 if (r == currRing)7014 {7015 loop7016 {7017 if (j > end_pos) return NULL;7018 #if defined(PDEBUG) || defined(PDIV_DEBUG)7019 if (strat->S[j]!= NULL && p_LmShortDivisibleBy(strat->S[j], sev[j], p, not_sev, r) &&7020 (ecart== LONG_MAX || ecart>= strat->ecartS[j]))7021 #else7022 if (!(sev[j] & not_sev) &&7023 (ecart== LONG_MAX || ecart>= strat->ecartS[j]) &&7024 p_LmDivisibleBy(strat->S[j], p, r))7025 #endif7026 {7027 break;7028 }7029 j++;7030 }7031 // if called from NF, T objects do not exist:7032 if (strat->tl < 0 || strat->S_2_R[j] == -1)7033 {7034 T->Set(strat->S[j], r, strat->tailRing);7035 assume(T->GetpLength()==pLength(T->p != __null ? T->p : T->t_p));7036 return T;7037 }7038 else7039 {7040 return strat->S_2_T(j);7041 }7042 }7043 else7044 {7045 TObject* t;7046 loop7047 {7048 if (j > end_pos) return NULL;7049 assume(strat->S_2_R[j] != -1);7050 #if defined(PDEBUG) || defined(PDIV_DEBUG)7051 t = strat->S_2_T(j);7052 assume(t != NULL && t->t_p != NULL && t->tailRing == r);7053 if (p_LmShortDivisibleBy(t->t_p, sev[j], p, not_sev, r)7054 && (ecart== LONG_MAX || ecart>= strat->ecartS[j]))7055 {7056 t->pLength=pLength(t->t_p);7057 return t;7058 }7059 #else7060 if (! (sev[j] & not_sev)7061 && (ecart== LONG_MAX || ecart>= strat->ecartS[j]))7062 {7063 t = strat->S_2_T(j);7064 assume(t != NULL && t->t_p != NULL && t->tailRing == r && t->p == strat->S[j]);7065 if (p_LmDivisibleBy(t->t_p, p, r))7066 {7067 t->pLength=pLength(t->t_p);7068 return t;7069 }7070 }7071 #endif7072 j++;7073 }7074 6999 } 7075 7000 }
Note: See TracChangeset
for help on using the changeset viewer.