| 2965 | |
| 2966 | #ifdef HAVE_SHIFTBBA |
| 2967 | ideal kStdShift(ideal F, ideal Q, tHomog h,intvec ** w, intvec *hilb,int syzComp, |
| 2968 | int newIdeal, intvec *vw, BOOLEAN rightGB) |
| 2969 | { |
| 2970 | assume(rIsLPRing(currRing)); |
| 2971 | assume(idIsInV(F)); |
| 2972 | ideal r; |
| 2973 | BOOLEAN b=currRing->pLexOrder,toReset=FALSE; |
| 2974 | BOOLEAN delete_w=(w==NULL); |
| 2975 | kStrategy strat=new skStrategy; |
| 2976 | |
| 2977 | strat->rightGB = rightGB; |
| 2978 | |
| 2979 | if(!TEST_OPT_RETURN_SB) |
| 2980 | strat->syzComp = syzComp; |
| 2981 | if (TEST_OPT_SB_1) |
| 2982 | if(!rField_is_Ring(currRing)) |
| 2983 | strat->newIdeal = newIdeal; |
| 2984 | if (rField_has_simple_inverse(currRing)) |
| 2985 | strat->LazyPass=20; |
| 2986 | else |
| 2987 | strat->LazyPass=2; |
| 2988 | strat->LazyDegree = 1; |
| 2989 | strat->ak = id_RankFreeModule(F,currRing); |
| 2990 | strat->kModW=kModW=NULL; |
| 2991 | strat->kHomW=kHomW=NULL; |
| 2992 | if (vw != NULL) |
| 2993 | { |
| 2994 | currRing->pLexOrder=FALSE; |
| 2995 | strat->kHomW=kHomW=vw; |
| 2996 | strat->pOrigFDeg = currRing->pFDeg; |
| 2997 | strat->pOrigLDeg = currRing->pLDeg; |
| 2998 | pSetDegProcs(currRing,kHomModDeg); |
| 2999 | toReset = TRUE; |
| 3000 | } |
| 3001 | if (h==testHomog) |
| 3002 | { |
| 3003 | if (strat->ak == 0) |
| 3004 | { |
| 3005 | h = (tHomog)idHomIdeal(F,Q); |
| 3006 | w=NULL; |
| 3007 | } |
| 3008 | else if (!TEST_OPT_DEGBOUND) |
| 3009 | { |
| 3010 | if (w!=NULL) |
| 3011 | h = (tHomog)idHomModule(F,Q,w); |
| 3012 | else |
| 3013 | h = (tHomog)idHomIdeal(F,Q); |
| 3014 | } |
| 3015 | } |
| 3016 | currRing->pLexOrder=b; |
| 3017 | if (h==isHomog) |
| 3018 | { |
| 3019 | if (strat->ak > 0 && (w!=NULL) && (*w!=NULL)) |
| 3020 | { |
| 3021 | strat->kModW = kModW = *w; |
| 3022 | if (vw == NULL) |
| 3023 | { |
| 3024 | strat->pOrigFDeg = currRing->pFDeg; |
no test coverage detected