| 2607 | void kDebugPrint(kStrategy strat); |
| 2608 | |
| 2609 | ideal bba (ideal F, ideal Q,intvec *w,intvec *hilb,kStrategy strat) |
| 2610 | { |
| 2611 | int red_result = 1; |
| 2612 | int olddeg,reduc; |
| 2613 | int hilbeledeg=1,hilbcount=0,minimcnt=0; |
| 2614 | BOOLEAN withT = FALSE; |
| 2615 | BITSET save; |
| 2616 | SI_SAVE_OPT1(save); |
| 2617 | |
| 2618 | initBuchMoraCrit(strat); /*set Gebauer, honey, sugarCrit*/ |
| 2619 | if(rField_is_Ring(currRing)) |
| 2620 | initBuchMoraPosRing(strat); |
| 2621 | else |
| 2622 | initBuchMoraPos(strat); |
| 2623 | initHilbCrit(F,Q,&hilb,strat); |
| 2624 | initBba(strat); |
| 2625 | /*set enterS, spSpolyShort, reduce, red, initEcart, initEcartPair*/ |
| 2626 | /*Shdl=*/initBuchMora(F, Q,strat); |
| 2627 | if (strat->minim>0) strat->M=idInit(IDELEMS(F),F->rank); |
| 2628 | reduc = olddeg = 0; |
| 2629 | |
| 2630 | #ifndef NO_BUCKETS |
| 2631 | if (!TEST_OPT_NOT_BUCKETS) |
| 2632 | strat->use_buckets = 1; |
| 2633 | #endif |
| 2634 | // redtailBBa against T for inhomogeneous input |
| 2635 | if (!TEST_OPT_OLDSTD) |
| 2636 | withT = ! strat->homog; |
| 2637 | |
| 2638 | // strat->posInT = posInT_pLength; |
| 2639 | kTest_TS(strat); |
| 2640 | |
| 2641 | #ifdef HAVE_TAIL_RING |
| 2642 | if(!idIs0(F) &&(!rField_is_Ring(currRing))) // create strong gcd poly computes with tailring and S[i] ->to be fixed |
| 2643 | kStratInitChangeTailRing(strat); |
| 2644 | #endif |
| 2645 | if (BVERBOSE(23)) |
| 2646 | { |
| 2647 | if (test_PosInT!=NULL) strat->posInT=test_PosInT; |
| 2648 | if (test_PosInL!=NULL) strat->posInL=test_PosInL; |
| 2649 | kDebugPrint(strat); |
| 2650 | } |
| 2651 | |
| 2652 | |
| 2653 | #ifdef KDEBUG |
| 2654 | //kDebugPrint(strat); |
| 2655 | #endif |
| 2656 | /* compute------------------------------------------------------- */ |
| 2657 | while (strat->Ll >= 0) |
| 2658 | { |
| 2659 | #ifdef KDEBUG |
| 2660 | if (TEST_OPT_DEBUG) messageSets(strat); |
| 2661 | #endif |
| 2662 | if (siCntrlc) |
| 2663 | { |
| 2664 | while (strat->Ll >= 0) |
| 2665 | deleteInL(strat->L,&strat->Ll,strat->Ll,strat); |
| 2666 | strat->noClearS=TRUE; |
no test coverage detected