MCPcopy Create free account
hub / github.com/Singular/Singular / kMin_std

Function kMin_std

kernel/GBEngine/kstd1.cc:3074–3223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3072//##############################################################
3073
3074ideal 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);

Callers 2

jjMSTDFunction · 0.85
idMinBaseFunction · 0.85

Calls 15

idIs0Function · 0.85
idInitFunction · 0.85
kStdFunction · 0.85
idSkipZeroesFunction · 0.85
idCopyFunction · 0.85
idHomIdealFunction · 0.85
idHomModuleFunction · 0.85
pSetDegProcsFunction · 0.85
rHasLocalOrMixedOrderingFunction · 0.85
idMinBaseFunction · 0.85
bbaFunction · 0.85

Tested by

no test coverage detected