| 3072 | //############################################################## |
| 3073 | |
| 3074 | ideal kMin_std(ideal F, ideal Q, tHomog h,intvec ** w, ideal &M, intvec *hilb, |
| 3075 | int syzComp, int reduced) |
| 3076 | { |
| 3077 | if(idIs0(F)) |
| 3078 | { |
| 3079 | M=idInit(1,F->rank); |
| 3080 | return idInit(1,F->rank); |
| 3081 | } |
| 3082 | if(rField_is_Ring(currRing)) |
| 3083 | { |
| 3084 | ideal sb; |
| 3085 | sb = kStd(F, Q, h, w, hilb); |
| 3086 | idSkipZeroes(sb); |
| 3087 | if(IDELEMS(sb) <= IDELEMS(F)) |
| 3088 | { |
| 3089 | M = idCopy(sb); |
| 3090 | idSkipZeroes(M); |
| 3091 | return(sb); |
| 3092 | } |
| 3093 | else |
| 3094 | { |
| 3095 | M = idCopy(F); |
| 3096 | idSkipZeroes(M); |
| 3097 | return(sb); |
| 3098 | } |
| 3099 | } |
| 3100 | ideal r=NULL; |
| 3101 | int Kstd1_OldDeg = Kstd1_deg,i; |
| 3102 | intvec* temp_w=NULL; |
| 3103 | BOOLEAN b=currRing->pLexOrder,toReset=FALSE; |
| 3104 | BOOLEAN delete_w=(w==NULL); |
| 3105 | BOOLEAN oldDegBound=TEST_OPT_DEGBOUND; |
| 3106 | kStrategy strat=new skStrategy; |
| 3107 | |
| 3108 | if(!TEST_OPT_RETURN_SB) |
| 3109 | strat->syzComp = syzComp; |
| 3110 | if (rField_has_simple_inverse(currRing)) |
| 3111 | strat->LazyPass=20; |
| 3112 | else |
| 3113 | strat->LazyPass=2; |
| 3114 | strat->LazyDegree = 1; |
| 3115 | strat->minim=(reduced % 2)+1; |
| 3116 | strat->ak = id_RankFreeModule(F,currRing); |
| 3117 | if (delete_w) |
| 3118 | { |
| 3119 | temp_w=new intvec((strat->ak)+1); |
| 3120 | w = &temp_w; |
| 3121 | } |
| 3122 | if (h==testHomog) |
| 3123 | { |
| 3124 | if (strat->ak == 0) |
| 3125 | { |
| 3126 | h = (tHomog)idHomIdeal(F,Q); |
| 3127 | w=NULL; |
| 3128 | } |
| 3129 | else |
| 3130 | { |
| 3131 | h = (tHomog)idHomModule(F,Q,w); |
no test coverage detected