MCPcopy Create free account
hub / github.com/Singular/Singular / enterTShift

Function enterTShift

kernel/GBEngine/kutil.cc:12974–12993  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12972*/
12973#ifdef HAVE_SHIFTBBA
12974void enterTShift(LObject p, kStrategy strat, int atT)
12975{
12976 /* determine how many elements we have to insert */
12977 /* x(0)y(1)z(2) : lastVblock-1=2, to add until lastVblock=uptodeg-1 */
12978 /* hence, a total number of elt's to add is: */
12979 /* int toInsert = 1 + (uptodeg-1) - (pLastVblock(p.p, lV) -1); */
12980 pAssume(p.p != NULL);
12981
12982 int maxPossibleShift = p_mLPmaxPossibleShift(p.p, strat->tailRing);
12983
12984 for (int i = 1; i <= maxPossibleShift; i++)
12985 {
12986 LObject qq;
12987 qq.p = pLPCopyAndShiftLM(p.p, i); // don't use Set() because it'll test the poly order
12988 qq.shift = i;
12989 strat->initEcart(&qq); // initEcartBBA sets length, pLength, FDeg and ecart
12990
12991 enterT(qq, strat, atT); // enterT is modified, so it doesn't copy and delete the tail of shifted polys
12992 }
12993}
12994#endif
12995
12996#ifdef HAVE_SHIFTBBA

Callers 3

bbaShiftFunction · 0.85
updateSFunction · 0.85
replaceInLAndSAndTFunction · 0.85

Calls 2

p_mLPmaxPossibleShiftFunction · 0.85
enterTFunction · 0.85

Tested by

no test coverage detected