Changeset ede2ad8 in git for kernel/GBEngine/kutil.cc


Ignore:
Timestamp:
Aug 31, 2015, 3:57:59 PM (9 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '4a9821a93ffdc22a6696668bd4f6b8c9de3e6c5f')
Children:
fd07781d309b3cc6a9930e69e9c6b97aa93d73a4
Parents:
ef573fff51417c61e82c8176e0679f71fb732c40
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2015-08-31 15:57:59+02:00
git-committer:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2015-08-31 16:01:57+02:00
Message:
fix tr. #712: std(SB,I) does not allow crit3 because of the (wrong) order of reductions

if size(I)*4 > 3*size(SB), use std(SB+I), otherwise disable crit3
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/GBEngine/kutil.cc

    ref573f rede2ad8  
    23002300  pLcm(p,strat->S[i],Lp.lcm);
    23012301  pSetm(Lp.lcm);
    2302   for(j = strat->Ll;j>=0;j--)
    2303   {
    2304     compare=pDivComp(strat->L[j].lcm,Lp.lcm);
    2305     if ((compare==1) || (pLmEqual(strat->L[j].lcm,Lp.lcm)))
    2306     {
    2307       //PrintS("c3-crit\n");
    2308       strat->c3++;
    2309       pLmFree(Lp.lcm);
    2310       return;
    2311     }
    2312     else if (compare ==-1)
    2313     {
    2314       //Print("c3-crit with L[%d]\n",j);
    2315       deleteInL(strat->L,&strat->Ll,j,strat);
    2316       strat->c3++;
    2317     }
    2318   }
    23192302  /*-  compute the short s-polynomial -*/
    23202303
     
    26202603    }
    26212604  }
     2605}
     2606/*2
     2607*the pairset B of pairs of type (s[i],p) is complete now. It will be updated
     2608*without the chain-criterion in B and L and enters B to L
     2609*/
     2610void chainCritOpt_1 (poly,int,kStrategy strat)
     2611{
     2612  if (strat->pairtest!=NULL)
     2613  {
     2614    omFreeSize(strat->pairtest,(strat->sl+2)*sizeof(BOOLEAN));
     2615    strat->pairtest=NULL;
     2616  }
     2617  /*
     2618  *the elements of B enter L
     2619  */
     2620  kMergeBintoL(strat);
    26222621}
    26232622/*2
     
    75647563  strat->enterOnePair=enterOnePairNormal;
    75657564  strat->chainCrit=chainCritNormal;
     7565  if (TEST_OPT_SB_1)
     7566    strat->chainCrit=chainCritOpt_1;
    75667567#ifdef HAVE_RINGS
    75677568  if (rField_is_Ring(currRing))
     
    90779078    else if (strat->initEcartPair==initEcartPairMora) PrintS("initEcartPairMora\n");
    90789079    else  Print("%p\n",(void*)strat->initEcartPair);
    9079   Print("homog=%d, LazyDegree=%d, LazyPass=%d, ak=%d,\n",
    9080          strat->homog, strat->LazyDegree,strat->LazyPass, strat->ak);
    9081   Print("honey=%d, sugarCrit=%d, Gebauer=%d, noTailReduction=%d, use_buckets=%d\n",
    9082          strat->honey,strat->sugarCrit,strat->Gebauer,strat->noTailReduction,strat->use_buckets);
     9080  PrintS("chainCrit: ");
     9081    if (strat->chainCrit==chainCritNormal) PrintS("chainCritNormal\n");
     9082    else if (strat->chainCrit==chainCritOpt_1) PrintS("chainCritOpt_1\n");
     9083    else  Print("%p\n",(void*)strat->chainCrit);
    90839084  Print("posInLDependsOnLength=%d\n",
    90849085         strat->posInLDependsOnLength);
Note: See TracChangeset for help on using the changeset viewer.