| 4572 | /* shiftgb stuff */ |
| 4573 | #ifdef HAVE_SHIFTBBA |
| 4574 | ideal bbaShift(ideal F, ideal Q,intvec *w,intvec *hilb,kStrategy strat) |
| 4575 | { |
| 4576 | int red_result = 1; |
| 4577 | int olddeg,reduc; |
| 4578 | int hilbeledeg=1,hilbcount=0,minimcnt=0; |
| 4579 | BOOLEAN withT = TRUE; // currently only T contains the shifts |
| 4580 | BITSET save; |
| 4581 | SI_SAVE_OPT1(save); |
| 4582 | |
| 4583 | initBuchMoraCrit(strat); /*set Gebauer, honey, sugarCrit*/ |
| 4584 | if(rField_is_Ring(currRing)) |
| 4585 | initBuchMoraPosRing(strat); |
| 4586 | else |
| 4587 | initBuchMoraPos(strat); |
| 4588 | initHilbCrit(F,Q,&hilb,strat); |
| 4589 | initBba(strat); |
| 4590 | /*set enterS, spSpolyShort, reduce, red, initEcart, initEcartPair*/ |
| 4591 | /*Shdl=*/initBuchMora(F, Q,strat); |
| 4592 | if (strat->minim>0) strat->M=idInit(IDELEMS(F),F->rank); |
| 4593 | reduc = olddeg = 0; |
| 4594 | |
| 4595 | #ifndef NO_BUCKETS |
| 4596 | if (!TEST_OPT_NOT_BUCKETS) |
| 4597 | strat->use_buckets = 1; |
| 4598 | #endif |
| 4599 | // redtailBBa against T for inhomogeneous input |
| 4600 | // if (!TEST_OPT_OLDSTD) |
| 4601 | // withT = ! strat->homog; |
| 4602 | |
| 4603 | // strat->posInT = posInT_pLength; |
| 4604 | kTest_TS(strat); |
| 4605 | |
| 4606 | #ifdef HAVE_TAIL_RING |
| 4607 | // if(!idIs0(F) &&(!rField_is_Ring(currRing))) // create strong gcd poly computes with tailring and S[i] ->to be fixed |
| 4608 | // kStratInitChangeTailRing(strat); |
| 4609 | strat->tailRing=currRing; |
| 4610 | #endif |
| 4611 | if (BVERBOSE(23)) |
| 4612 | { |
| 4613 | if (test_PosInT!=NULL) strat->posInT=test_PosInT; |
| 4614 | if (test_PosInL!=NULL) strat->posInL=test_PosInL; |
| 4615 | kDebugPrint(strat); |
| 4616 | } |
| 4617 | |
| 4618 | #ifdef KDEBUG |
| 4619 | //kDebugPrint(strat); |
| 4620 | #endif |
| 4621 | /* compute------------------------------------------------------- */ |
| 4622 | while (strat->Ll >= 0) |
| 4623 | { |
| 4624 | #ifdef KDEBUG |
| 4625 | if (TEST_OPT_DEBUG) messageSets(strat); |
| 4626 | #endif |
| 4627 | if (siCntrlc) |
| 4628 | { |
| 4629 | while (strat->Ll >= 0) |
| 4630 | deleteInL(strat->L,&strat->Ll,strat->Ll,strat); |
| 4631 | strat->noClearS=TRUE; |
no test coverage detected