| 8889 | |
| 8890 | #ifdef HAVE_SHIFTBBA |
| 8891 | void enterSBbaShift (LObject &p,int atS,kStrategy strat, int atR) |
| 8892 | { |
| 8893 | enterSBba(p, atS, strat, atR); |
| 8894 | |
| 8895 | int maxPossibleShift = p_mLPmaxPossibleShift(p.p, strat->tailRing); |
| 8896 | for (int i = maxPossibleShift; i > 0; i--) |
| 8897 | { |
| 8898 | // NOTE: don't use "shared tails" here. In rare cases it can cause problems |
| 8899 | // in `kNF2` because of lazy poly normalizations. |
| 8900 | LObject qq(p_Copy(p.p, strat->tailRing)); |
| 8901 | p_mLPshift(qq.p, i, strat->tailRing); |
| 8902 | qq.shift = i; |
| 8903 | strat->initEcart(&qq); // initEcartBBA sets length, pLength, FDeg and ecart |
| 8904 | int atS = posInS(strat, strat->sl, qq.p, qq.ecart); // S needs to stay sorted because this is for example assumed when searching S later |
| 8905 | enterSBba(qq, atS, strat, -1); |
| 8906 | } |
| 8907 | } |
| 8908 | #endif |
| 8909 | |
| 8910 | /*2 |
nothing calls this directly
no test coverage detected