Changeset d5856f in git for kernel/kutil.cc


Ignore:
Timestamp:
Dec 6, 2013, 4:05:10 PM (10 years ago)
Author:
Christian Eder
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
1eba3916d70fdfa610391e2779d72b202c1b7915
Parents:
cda0b04282903cc2bac5f3b79cb72d0319602785
git-author:
Christian Eder <ederc@mathematik.uni-kl.de>2013-12-06 16:05:10+01:00
git-committer:
Christian Eder <ederc@mathematik.uni-kl.de>2013-12-12 13:51:29+01:00
Message:
fixes & improves syzygy handling in sba
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/kutil.cc

    rcda0b0 rd5856f  
    46394639if (pLmCmp(strat->syz[strat->syzl-1],sig) != currRing->OrdSgn)
    46404640  return strat->syzl;
    4641 
    46424641int i;
    46434642int an = 0;
     
    50915090  for (int k=0; k<strat->syzl; k++)
    50925091  {
     5092    //printf("-%d",k);
    50935093//#if 1
    50945094#ifdef DEBUGF5
    5095     Print("checking with: %d --  \n",k);
     5095    Print("checking with: %d / %d --  \n",k,strat->syzl);
    50965096    pWrite(pHead(strat->syz[k]));
    50975097#endif
     
    51025102      printf("DELETE!\n");
    51035103#endif
     5104      //printf("- T -\n\n");
    51045105      return TRUE;
    51055106    }
    5106     //k++;
    5107   }
     5107  }
     5108  //printf("- F -\n\n");
    51085109  return FALSE;
    51095110}
     
    51165117//#if 1
    51175118#ifdef DEBUGF5
    5118   Print("syzygy criterion checks:  ");
     5119  Print("--- syzygy criterion checks:  ");
    51195120  pWrite(sig);
    51205121#endif
     
    51395140    for (int k=min; k<max; k++)
    51405141    {
    5141 #ifdef DEBUGF5
     5142#ifdef F5DEBUG
    51425143      printf("COMP %d/%d - MIN %d - MAX %d - SYZL %ld\n",comp,strat->currIdx,min,max,strat->syzl);
    51435144      Print("checking with: %d --  ",k);
     
    51465147      if (p_LmShortDivisibleBy(strat->syz[k], strat->sevSyz[k], sig, not_sevSig, currRing))
    51475148        return TRUE;
    5148       //k++;
    51495149    }
    51505150    return FALSE;
     
    61146114    strat->sevSyz     = initsevS(ps);
    61156115    strat->syz        = (poly *)omAlloc(ps*sizeof(poly));
    6116     strat->syzl       = strat->syzmax = ps;
     6116    strat->syzmax     = ps;
     6117    strat->syzl       = 0;
    61176118    strat->syzidxmax  = comp;
    61186119#if defined(DEBUGF5) || defined(DEBUGF51)
     
    61526153        strat->syzIdx[j]  = ctr;
    61536154        j++;
     6155        LObject Q;
     6156        int pos;
    61546157        for (k = 0; k<i; k++)
    61556158        {
    6156           poly p          = pOne();
    6157           p_ExpVectorCopy(p,strat->S[k],currRing);
    6158           strat->syz[ctr] = p;
    6159           p_SetCompP (strat->syz[ctr], comp, currRing);
    6160           poly q          = p_Copy(p, currRing);
     6159          Q.sig          = pOne();
     6160          p_ExpVectorCopy(Q.sig,strat->S[k],currRing);
     6161          p_SetCompP (Q.sig, comp, currRing);
     6162          poly q          = p_One(currRing);
    61616163          p_ExpVectorCopy(q,strat->S[i],currRing);
    61626164          q               = p_Neg (q, currRing);
    61636165          p_SetCompP (q, p_GetComp(strat->sig[k], currRing), currRing);
    6164           strat->syz[ctr] = p_Add_q (strat->syz[ctr], q, currRing);
    6165 #if defined(DEBUGF5) || defined(DEBUGF51)
    6166 //#if 1
    6167           printf(". . \n");
    6168           pWrite(strat->syz[ctr]);
    6169 #endif
    6170           strat->sevSyz[ctr] = p_GetShortExpVector(strat->syz[ctr],currRing);
     6166          Q.sig = p_Add_q (Q.sig, q, currRing);
     6167          Q.sevSig  = p_GetShortExpVector(Q.sig,currRing);
     6168          pos = posInSyz(strat, Q.sig);
     6169          enterSyz(Q, strat, pos);
    61716170          ctr++;
    61726171        }
     
    61946193    }
    61956194    strat->syzIdx[j]  = ctr;
     6195    LObject Q;
     6196    int pos;
    61966197    for (k = 0; k<strat->sl+1; k++)
    61976198    {
    6198       poly p          = pOne();
    6199       p_ExpVectorCopy(p,strat->S[k],currRing);
    6200       strat->syz[ctr] = p;
    6201       p_SetCompP (strat->syz[ctr], comp, currRing);
    6202       poly q          = p_Copy(p, currRing);
     6199      Q.sig          = pOne();
     6200      p_ExpVectorCopy(Q.sig,strat->S[k],currRing);
     6201      p_SetCompP (Q.sig, comp, currRing);
     6202      poly q          = p_One(currRing);
    62036203      p_ExpVectorCopy(q,strat->L[strat->Ll].p,currRing);
    62046204      q               = p_Neg (q, currRing);
    62056205      p_SetCompP (q, p_GetComp(strat->sig[k], currRing), currRing);
    6206       strat->syz[ctr] = p_Add_q (strat->syz[ctr], q, currRing);
    6207 //#if 1
    6208 #if DEBUGF5 || DEBUGF51
    6209       printf("..");
    6210       pWrite(strat->syz[ctr]);
    6211 #endif
    6212       strat->sevSyz[ctr] = p_GetShortExpVector(strat->syz[ctr],currRing);
     6206      Q.sig = p_Add_q (Q.sig, q, currRing);
     6207      Q.sevSig = p_GetShortExpVector(Q.sig,currRing);
     6208      pos = posInSyz(strat, Q.sig);
     6209      enterSyz(Q, strat, pos);
    62136210      ctr++;
    62146211    }
     
    62206217    printf("ps     %d\n",ps);
    62216218    Print("--------------------------------\n");
    6222     for(i=0;i<=ps-1;i++)
    6223     {
     6219    for(i=0;i<=strat->syzl-1;i++)
     6220    {
     6221      printf("%d - ",i);
    62246222      pWrite(strat->syz[i]);
     6223    }
     6224    for(i=0;i<strat->currIdx;i++)
     6225    {
     6226      printf("%d - %d\n",i,strat->syzIdx[i]);
    62256227    }
    62266228    Print("--------------------------------\n");
     
    72337235  int i;
    72347236  strat->newt = TRUE;
    7235   if (strat->syzl == strat->syzmax)
     7237  if (strat->syzl == strat->syzmax-1)
    72367238  {
    72377239    pEnlargeSet(&strat->syz,strat->syzmax,setmaxTinc);
     
    72427244    strat->syzmax += setmaxTinc;
    72437245  }
    7244   if (atT < strat->syzl-1)
     7246  if (atT < strat->syzl)
    72457247  {
    72467248#ifdef ENTER_USE_MEMMOVE
     
    72587260    }
    72597261  }
    7260   i = strat->syzl;
    7261   //i = atT;
    7262   strat->syz[i] = p.sig;
    7263   strat->sevSyz[i] = p.sevSig;
     7262  //i = strat->syzl;
     7263  i = atT;
     7264  strat->syz[atT] = p.sig;
     7265  strat->sevSyz[atT] = p.sevSig;
    72647266  strat->syzl++;
    7265 #ifdef DEBUGF5
    7266   Print("last element in strat->syz: %d--%d  ",i+1,strat->syzmax);
    7267   pWrite(strat->syz[i]);
     7267#if F5DEBUG
     7268  Print("element in strat->syz: %d--%d  ",atT+1,strat->syzmax);
     7269  pWrite(strat->syz[atT]);
    72687270#endif
    72697271  // recheck pairs in strat->L with new rule and delete correspondingly
     
    72787280    cc--;
    72797281  }
     7282//#if 1
     7283#ifdef DEBUGF5
     7284    Print("--- Syzygies ---\n");
     7285    printf("syzl   %d\n",strat->syzl);
     7286    printf("syzmax %d\n",strat->syzmax);
     7287    Print("--------------------------------\n");
     7288    for(i=0;i<=strat->syzl-1;i++)
     7289    {
     7290      printf("%d - ",i);
     7291      pWrite(strat->syz[i]);
     7292    }
     7293    Print("--------------------------------\n");
     7294#endif
    72807295}
    72817296
Note: See TracChangeset for help on using the changeset viewer.