Changeset d6e0c0 in git for kernel/GBEngine/kstd2.cc


Ignore:
Timestamp:
May 27, 2016, 11:35:38 AM (8 years ago)
Author:
Adi Popescu <adi_popescum@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'fc741b6502fd8a97288eaa3eba6e5220f3c3df87')
Children:
11416edcd9adbf9f06648517bfe1cc5a0cf57377
Parents:
b61d85898290efdf5f9da1b651cffefa4abd25d2e21795456bd208614b301fe91592ebed25ebc2d1
Message:
Merge branch 'spielwiese' of github.com:Singular/Sources into SigDrop

Conflicts:
	kernel/GBEngine/kutil.cc
	kernel/polys.h
	libpolys/polys/monomials/p_polys.h
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/GBEngine/kstd2.cc

    rb61d858 rd6e0c0  
    106106    pAssume(~not_sev == p_GetShortExpVector(p, r));
    107107
    108     loop
    109     {
    110       if (j > strat->tl) return -1;
     108#ifdef HAVE_RINGS
     109    if(rField_is_Ring(r))
     110    {
     111      loop
     112      {
     113        if (j > strat->tl) return -1;
    111114#if defined(PDEBUG) || defined(PDIV_DEBUG)
    112       if (p_LmShortDivisibleBy(T[j].p, sevT[j],p, not_sev, r))
    113       {
    114         if(rField_is_Ring(r))
     115        if (p_LmShortDivisibleBy(T[j].p, sevT[j],p, not_sev, r))
    115116        {
    116117          if(n_DivBy(pGetCoeff(p), pGetCoeff(T[j].p), r))
    117             return j;}
    118           else
    119           {
    120118            return j;
    121           }
    122119        }
    123120#else
    124       if (!(sevT[j] & not_sev) &&
     121        if (!(sevT[j] & not_sev) &&
    125122          p_LmDivisibleBy(T[j].p, p, r))
    126123        {
    127           if(rField_is_Ring(r))
    128           {
    129             if(n_DivBy(pGetCoeff(p), pGetCoeff(T[j].p), r))
    130               return j;
    131           }
    132           else
    133           {
     124          if(n_DivBy(pGetCoeff(p), pGetCoeff(T[j].p), r))
    134125            return j;
    135           }
    136         }
    137 #endif
    138       j++;
    139     }
     126        }
     127#endif
     128        j++;
     129      }
     130    }
     131    else
     132    {
     133      loop
     134      {
     135        if (j > strat->tl) return -1;
     136#if defined(PDEBUG) || defined(PDIV_DEBUG)
     137        if (p_LmShortDivisibleBy(T[j].p, sevT[j],p, not_sev, r))
     138        {
     139          return j;
     140        }
     141#else
     142        if (!(sevT[j] & not_sev) &&
     143          p_LmDivisibleBy(T[j].p, p, r))
     144        {
     145          return j;
     146        }
     147#endif
     148        j++;
     149      }
     150    }
     151#endif
    140152  }
    141153  else
     
    143155    const poly p=L->t_p;
    144156    const ring r=strat->tailRing;
    145     loop
    146     {
    147       if (j > strat->tl) return -1;
     157#ifdef HAVE_RINGS
     158    if(rField_is_Ring(r))
     159    {
     160      loop
     161      {
     162        if (j > strat->tl) return -1;
    148163#if defined(PDEBUG) || defined(PDIV_DEBUG)
    149       if (p_LmShortDivisibleBy(T[j].t_p, sevT[j],
     164        if (p_LmShortDivisibleBy(T[j].t_p, sevT[j],
    150165                               p, not_sev, r))
    151166        {
    152           if(rField_is_Ring(r))
    153           {
    154             if(n_DivBy(pGetCoeff(p), pGetCoeff(T[j].t_p), r))
    155               return j;
    156           }
    157           else
    158           {
     167          if(n_DivBy(pGetCoeff(p), pGetCoeff(T[j].t_p), r))
    159168            return j;
    160           }
    161169        }
    162170#else
    163       if (!(sevT[j] & not_sev) &&
     171        if (!(sevT[j] & not_sev) &&
    164172          p_LmDivisibleBy(T[j].t_p, p, r))
    165173        {
    166           if(rField_is_Ring(r))
    167           {
    168             if(n_DivBy(pGetCoeff(p), pGetCoeff(T[j].t_p), r))
    169               return j;
    170           }
    171           else
    172           {
     174          if(n_DivBy(pGetCoeff(p), pGetCoeff(T[j].t_p), r))
    173175            return j;
    174           }
    175         }
    176 #endif
    177       j++;
     176        }
     177#endif
     178        j++;
     179      }
     180    }
     181    else
     182#endif
     183    {
     184      loop
     185      {
     186        if (j > strat->tl) return -1;
     187#if defined(PDEBUG) || defined(PDIV_DEBUG)
     188        if (p_LmShortDivisibleBy(T[j].t_p, sevT[j],
     189                               p, not_sev, r))
     190        {
     191          return j;
     192        }
     193#else
     194        if (!(sevT[j] & not_sev) &&
     195          p_LmDivisibleBy(T[j].t_p, p, r))
     196        {
     197          return j;
     198        }
     199#endif
     200        j++;
     201      }
    178202    }
    179203  }
     
    190214#if 1
    191215  int ende;
    192   if ((strat->ak>0) || currRing->pLexOrder) ende=strat->sl;
     216  if ((strat->ak>0) || currRing->pLexOrder || rField_is_Ring(currRing)) ende=strat->sl;
    193217  else ende=posInS(strat,*max_ind,p,0)+1;
    194218  if (ende>(*max_ind)) ende=(*max_ind);
     
    197221#endif
    198222  (*max_ind)=ende;
    199   loop
    200   {
    201     if (j > ende) return -1;
     223#ifdef HAVE_RINGS
     224  if(rField_is_Ring(currRing))
     225  {
     226    loop
     227    {
     228      if (j > ende) return -1;
    202229#if defined(PDEBUG) || defined(PDIV_DEBUG)
    203     if (p_LmShortDivisibleBy(strat->S[j], strat->sevS[j],
     230      if (p_LmShortDivisibleBy(strat->S[j], strat->sevS[j],
    204231                             p, not_sev, currRing))
    205         {
    206             if(rField_is_Ring(currRing))
    207                 {if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
    208                     return j;}
    209             else
    210             return j;
    211         }
     232      {
     233        if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
     234          return j;
     235      }
    212236#else
    213     if ( !(strat->sevS[j] & not_sev) &&
     237      if ( !(strat->sevS[j] & not_sev) &&
    214238         p_LmDivisibleBy(strat->S[j], p, currRing))
    215         {
    216             if(rField_is_Ring(currRing))
    217                 {if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
    218                     return j;}
    219             else
    220             return j;
    221         }
    222 #endif
    223     j++;
     239      {
     240        if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
     241          return j;
     242      }
     243#endif
     244      j++;
     245    }
     246  }
     247  else
     248#endif
     249  {
     250    loop
     251    {
     252      if (j > ende) return -1;
     253#if defined(PDEBUG) || defined(PDIV_DEBUG)
     254      if (p_LmShortDivisibleBy(strat->S[j], strat->sevS[j],
     255                             p, not_sev, currRing))
     256      {
     257        return j;
     258      }
     259#else
     260      if ( !(strat->sevS[j] & not_sev) &&
     261         p_LmDivisibleBy(strat->S[j], p, currRing))
     262      {
     263        return j;
     264      }
     265#endif
     266      j++;
     267    }
    224268  }
    225269}
     
    237281  int ende=strat->sl;
    238282#endif
    239   loop
    240   {
    241     if (j > ende) return -1;
     283#ifdef HAVE_RINGS
     284  if(rField_is_Ring(currRing))
     285  {
     286    loop
     287    {
     288      if (j > ende) return -1;
    242289#if defined(PDEBUG) || defined(PDIV_DEBUG)
    243     if (p_LmShortDivisibleBy(strat->S[j], strat->sevS[j],
     290      if (p_LmShortDivisibleBy(strat->S[j], strat->sevS[j],
    244291                             p, not_sev, currRing))
    245         {
    246             if(rField_is_Ring(currRing))
    247                 {if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
    248                     return j;}
    249             else
    250             return j;
    251         }
     292      {
     293        if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
     294          return j;
     295      }
    252296#else
    253     if ( !(strat->sevS[j] & not_sev) &&
     297      if ( !(strat->sevS[j] & not_sev) &&
    254298         p_LmDivisibleBy(strat->S[j], p, currRing))
    255         {
    256             if(rField_is_Ring(currRing))
    257                 {if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
    258                     return j;}
    259             else
    260             return j;
    261         }
    262 #endif
    263     j++;
     299      {
     300        if(n_DivBy(pGetCoeff(p), pGetCoeff(strat->S[j]), currRing))
     301          return j;
     302      }
     303#endif
     304      j++;
     305    }
     306  }
     307  else
     308#endif
     309  {
     310    loop
     311    {
     312      if (j > ende) return -1;
     313#if defined(PDEBUG) || defined(PDIV_DEBUG)
     314      if (p_LmShortDivisibleBy(strat->S[j], strat->sevS[j],
     315                             p, not_sev, currRing))
     316      {
     317        return j;
     318      }
     319#else
     320      if ( !(strat->sevS[j] & not_sev) &&
     321         p_LmDivisibleBy(strat->S[j], p, currRing))
     322      {
     323        return j;
     324      }
     325#endif
     326      j++;
     327    }
    264328  }
    265329}
     
    15411605
    15421606  initBuchMoraCrit(strat); /*set Gebauer, honey, sugarCrit*/
    1543   initBuchMoraPos(strat);
     1607  if(rField_is_Ring(currRing))
     1608    initBuchMoraPosRing(strat);
     1609  else
     1610    initBuchMoraPos(strat);
    15441611  initHilbCrit(F,Q,&hilb,strat);
    15451612  initBba(strat);
     
    17601827      {
    17611828        enterT(strat->P, strat);
     1829        #ifdef HAVE_RINGS
    17621830        if (rField_is_Ring(currRing))
    17631831          superenterpairs(strat->P.p,strat->sl,strat->P.ecart,pos,strat, strat->tl);
    17641832        else
     1833        #endif
    17651834          enterpairs(strat->P.p,strat->sl,strat->P.ecart,pos,strat, strat->tl);
    17661835        // posInS only depends on the leading term
     
    18001869          int pos=posInS(strat,strat->sl,strat->P.p,strat->P.ecart);
    18011870          enterT(strat->P, strat);
     1871          #ifdef HAVE_RINGS
    18021872          if (rField_is_Ring(currRing))
    18031873            superenterpairs(strat->P.p,strat->sl,strat->P.ecart,pos,strat, strat->tl);
    18041874          else
     1875          #endif
    18051876            enterpairs(strat->P.p,strat->sl,strat->P.ecart,pos,strat, strat->tl);
    18061877          strat->enterS(strat->P, pos, strat, strat->tl);
     
    18591930  }
    18601931  else if (TEST_OPT_PROT) PrintLn();
     1932  #ifdef HAVE_RINGS
    18611933  if(nCoeff_is_Ring_Z(currRing->cf))
    18621934    finalReduceByMon(strat);
     
    18711943    }
    18721944  }
     1945  #endif
    18731946  /* release temp data-------------------------------- */
    18741947  exitBuchMora(strat);
     
    18901963  return (strat->Shdl);
    18911964}
     1965
    18921966ideal sba (ideal F0, ideal Q,intvec *w,intvec *hilb,kStrategy strat)
    18931967{
     
    19942068  initSbaCrit(strat); /*set Gebauer, honey, sugarCrit*/
    19952069  initSbaPos(strat);
    1996   //initBuchMoraPos(strat);
    19972070  initHilbCrit(F,Q,&hilb,strat);
    19982071  initSba(F,strat);
     
    24622535      pWrite(strat->P.sig);
    24632536      */
     2537      #ifdef HAVE_RINGS
    24642538      if (rField_is_Ring(currRing))
    24652539        superenterpairsSig(strat->P.p,strat->P.sig,strat->sl+1,strat->sl,strat->P.ecart,pos,strat, strat->tl);
    24662540      else
     2541      #endif
    24672542        enterpairsSig(strat->P.p,strat->P.sig,strat->sl+1,strat->sl,strat->P.ecart,pos,strat, strat->tl);
    24682543      #if ADIDEBUG
     
    30013076  {
    30023077    if (TEST_OPT_PROT) { PrintS("t"); mflush(); }
     3078    #ifdef HAVE_RINGS
    30033079    if (rField_is_Ring(currRing))
    30043080    {
     
    30063082    }
    30073083    else
     3084    #endif
    30083085    {
    30093086      si_opt_1 &= ~Sy_bit(OPT_INTSTRATEGY);
     
    30723149      {
    30733150        if (TEST_OPT_PROT) { PrintS("t"); mflush(); }
     3151        #ifdef HAVE_RINGS
    30743152        if (rField_is_Ring(currRing))
    30753153        {
     
    30773155        }
    30783156        else
     3157        #endif
    30793158        {
    30803159          p = redtailBba(p,max_ind,strat,(lazyReduce & KSTD_NF_NONORM)==0);
     
    34233502
    34243503  initBuchMoraCrit(strat); /*set Gebauer, honey, sugarCrit, NO CHANGES */
    3425   initBuchMoraPos(strat); /*NO CHANGES YET: perhaps later*/
     3504  if(rField_is_Ring(currRing))
     3505    initBuchMoraPosRing(strat);
     3506  else
     3507    initBuchMoraPos(strat); /*NO CHANGES YET: perhaps later*/
    34263508  initHilbCrit(F,Q,&hilb,strat); /*NO CHANGES*/
    34273509  initBbaShift(strat); /* DONE */
Note: See TracChangeset for help on using the changeset viewer.