| 2671 | } |
| 2672 | |
| 2673 | ideal kSba(ideal F, ideal Q, tHomog h,intvec ** w, int sbaOrder, int arri, intvec *hilb,int syzComp, |
| 2674 | int newIdeal, intvec *vw) |
| 2675 | { |
| 2676 | if(idIs0(F)) |
| 2677 | return idInit(1,F->rank); |
| 2678 | if(!rField_is_Ring(currRing)) |
| 2679 | { |
| 2680 | ideal r; |
| 2681 | BOOLEAN b=currRing->pLexOrder,toReset=FALSE; |
| 2682 | BOOLEAN delete_w=(w==NULL); |
| 2683 | kStrategy strat=new skStrategy; |
| 2684 | strat->sbaOrder = sbaOrder; |
| 2685 | if (arri!=0) |
| 2686 | { |
| 2687 | strat->rewCrit1 = arriRewDummy; |
| 2688 | strat->rewCrit2 = arriRewCriterion; |
| 2689 | strat->rewCrit3 = arriRewCriterionPre; |
| 2690 | } |
| 2691 | else |
| 2692 | { |
| 2693 | strat->rewCrit1 = faugereRewCriterion; |
| 2694 | strat->rewCrit2 = faugereRewCriterion; |
| 2695 | strat->rewCrit3 = faugereRewCriterion; |
| 2696 | } |
| 2697 | |
| 2698 | if(!TEST_OPT_RETURN_SB) |
| 2699 | strat->syzComp = syzComp; |
| 2700 | if (TEST_OPT_SB_1) |
| 2701 | //if(!rField_is_Ring(currRing)) // always true here |
| 2702 | strat->newIdeal = newIdeal; |
| 2703 | if (rField_has_simple_inverse(currRing)) |
| 2704 | strat->LazyPass=20; |
| 2705 | else |
| 2706 | strat->LazyPass=2; |
| 2707 | strat->LazyDegree = 1; |
| 2708 | strat->enterOnePair=enterOnePairNormal; |
| 2709 | strat->chainCrit=chainCritNormal; |
| 2710 | if (TEST_OPT_SB_1) strat->chainCrit=chainCritOpt_1; |
| 2711 | strat->ak = id_RankFreeModule(F,currRing); |
| 2712 | strat->kModW=kModW=NULL; |
| 2713 | strat->kHomW=kHomW=NULL; |
| 2714 | if (vw != NULL) |
| 2715 | { |
| 2716 | currRing->pLexOrder=FALSE; |
| 2717 | strat->kHomW=kHomW=vw; |
| 2718 | strat->pOrigFDeg = currRing->pFDeg; |
| 2719 | strat->pOrigLDeg = currRing->pLDeg; |
| 2720 | pSetDegProcs(currRing,kHomModDeg); |
| 2721 | toReset = TRUE; |
| 2722 | } |
| 2723 | if (h==testHomog) |
| 2724 | { |
| 2725 | if (strat->ak == 0) |
| 2726 | { |
| 2727 | h = (tHomog)idHomIdeal(F,Q); |
| 2728 | w=NULL; |
| 2729 | } |
| 2730 | else if (!TEST_OPT_DEGBOUND) |
no test coverage detected