Changeset 601105 in git for kernel/kstd1.cc


Ignore:
Timestamp:
Nov 19, 2013, 6:39:47 PM (9 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '1d362c315e551a5b527ab0759f8839cf0e94f3a5')
Children:
448b6571955b81192b53dc7300bb54a1984142e3
Parents:
9d864add8f262ed66a3af97f514c37d01844334c
Message:
chg: use syzComp in initenterstrongPairs
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/kstd1.cc

    r9d864a r601105  
    364364  int pass = 0;
    365365  long d,reddeg;
    366  
    367  
    368         #if ADIDEBUG_NF
    369         int iii;
    370         PrintLn();
    371         PrintS("---------------------------- NEW REDRILOC COMPUTATION ----------------------------");
    372         PrintLn();
    373         PrintS("                The pair h : "); PrintLn(); PrintLn();
    374         PrintS("                        p1 = "); p_Write(h->p1,strat->tailRing); PrintLn();
    375         PrintS("                        p2 = "); p_Write(h->p2,strat->tailRing); PrintLn();
    376         PrintS("                        p  = "); p_Write(h->p,strat->tailRing); PrintLn();
    377         PrintLn();
    378         PrintS("                The actual reducer T is: ");
    379         if(strat->tl<0)
    380                 {PrintS(" Empty.");PrintLn();}
    381         else
    382         for (iii=0;iii<=strat->tl;iii++)
    383                 {
    384                 PrintLn();
    385                 PrintS("                        T[");printf("%i",iii);PrintS("] = ");p_Write(strat->T[iii].p,strat->tailRing);
    386                 PrintLn();
    387                 }
    388         #endif /* ADIDEBUG_NF */
    389        
     366
     367
     368  #if ADIDEBUG_NF
     369  int iii;
     370  PrintLn();
     371  PrintS("---------------------------- NEW REDRILOC COMPUTATION ----------------------------");
     372  PrintLn();
     373  PrintS("    The pair h : "); PrintLn(); PrintLn();
     374  PrintS("      p1 = "); p_Write(h->p1,strat->tailRing); PrintLn();
     375  PrintS("      p2 = "); p_Write(h->p2,strat->tailRing); PrintLn();
     376  PrintS("      p  = "); p_Write(h->p,strat->tailRing); PrintLn();
     377  PrintLn();
     378  PrintS("    The actual reducer T is: ");
     379  if(strat->tl<0)
     380    {PrintS(" Empty.");PrintLn();}
     381  else
     382  for (iii=0;iii<=strat->tl;iii++)
     383    {
     384    PrintLn();
     385    PrintS("      T[");printf("%i",iii);PrintS("] = ");p_Write(strat->T[iii].p,strat->tailRing);
     386    PrintLn();
     387    }
     388  #endif /* ADIDEBUG_NF */
     389
    390390  d = h->GetpFDeg()+ h->ecart;
    391391  reddeg = strat->LazyDegree+d;
    392392  h->SetShortExpVector();
    393393  #if ADIDEBUG_NF
    394         PrintLn();
    395   PrintS("      Searching for a poly in T that divides h (of ecart ");
     394   PrintLn();
     395  PrintS("  Searching for a poly in T that divides h (of ecart ");
    396396  printf("%i",h->ecart);PrintS(") ...");
    397397  PrintLn();
     
    401401    j = kFindDivisibleByInT(strat->T, strat->sevT, strat->tl, h);
    402402    #if ADIDEBUG_NF
    403         if(j != -1)
    404                 {
    405                 ei = strat->T[j].ecart;
    406                 PrintLn();
    407                 PrintS("                Found one: T[");printf("%i",j);
    408                 PrintS("] of ecart ");printf("%i",ei);
    409                 PrintS(": ");p_Write(strat->T[j].p,strat->tailRing);
    410                 PrintLn();
    411                 PrintS("                Try to find another with smaller ecart:");
    412                 PrintLn();
    413                 }
    414           else
    415                 {
    416                 PrintLn();
    417                 PrintS("                No poly in T divides h.");
    418                 PrintLn();
    419                 }
    420         #endif
     403      if(j != -1)
     404        {
     405        ei = strat->T[j].ecart;
     406        PrintLn();
     407        PrintS("    Found one: T[");printf("%i",j);
     408        PrintS("] of ecart ");printf("%i",ei);
     409        PrintS(": ");p_Write(strat->T[j].p,strat->tailRing);
     410        PrintLn();
     411        PrintS("    Try to find another with smaller ecart:");
     412        PrintLn();
     413        }
     414      else
     415        {
     416        PrintLn();
     417        PrintS("    No poly in T divides h.");
     418        PrintLn();
     419        }
     420    #endif
    421421    if (j < 0)
    422422    {
     
    427427    ei = strat->T[j].ecart;
    428428    ii = j;
    429                 #if ADIDEBUG_NF
    430                 iii=ii;
    431                 #endif
     429    #if ADIDEBUG_NF
     430    iii=ii;
     431    #endif
    432432    if (ei > h->ecart && ii < strat->tl)
    433433    {
    434         li = strat->T[j].length;
     434      li = strat->T[j].length;
    435435      // the polynomial to reduce with (up to the moment) is;
    436436      // pi with ecart ei and length li
     
    462462        }
    463463      }
    464    
    465    
     464
     465
    466466    #if ADIDEBUG_NF
    467467    if(iii == ii)
    468         {
    469         PrintLn();
    470         PrintS("                None was found.");
    471         PrintLn();
    472         }
     468      {
     469      PrintLn();
     470      PrintS("    None was found.");
     471      PrintLn();
     472      }
    473473    else
    474         {
    475         PrintLn();
    476         PrintS("                A better one (ecart = ");printf("%i",ei);PrintS("): T[");
    477         printf("%i] = ",ii);p_Write(strat->T[ii].p,strat->tailRing);
    478         PrintLn();
    479         }
     474      {
     475      PrintLn();
     476      PrintS("    A better one (ecart = ");printf("%i",ei);PrintS("): T[");
     477      printf("%i] = ",ii);p_Write(strat->T[ii].p,strat->tailRing);
     478      PrintLn();
     479      }
    480480    #endif
    481    
     481
    482482    }
    483483
     
    514514    #if ADIDEBUG_NF
    515515    PrintLn();
    516           PrintS("      Partial Reduced h = ");p_Write(h->p,strat->tailRing);
    517           PrintLn();
    518           #endif
     516    PrintS("  Partial Reduced h = ");p_Write(h->p,strat->tailRing);
     517    PrintLn();
     518    #endif
    519519    strat->fromT=FALSE;
    520520
     
    11421142  while (i <= strat->tl)
    11431143  {
    1144         p = strat->T[i];
     1144    p = strat->T[i];
    11451145    deleteHC(&p,strat, TRUE);
    11461146    /*- tries to cancel a unit: -*/
     
    11951195    if (TEST_OPT_FINDET)
    11961196      return;
    1197      
     1197
    11981198#ifndef HAVE_RINGS
    11991199    strat->red = redFirst;
    12001200    strat->use_buckets = kMoraUseBucket(strat);
    12011201#else
    1202         if ( (!rField_is_Ring(currRing)) || (currRing->OrdSgn != -1))
    1203                 {
    1204                 strat->red = redFirst;
    1205         strat->use_buckets = kMoraUseBucket(strat);
    1206         }
    1207 #endif
    1208    
     1202  if ( (!rField_is_Ring(currRing)) || (currRing->OrdSgn != -1))
     1203    {
     1204    strat->red = redFirst;
     1205      strat->use_buckets = kMoraUseBucket(strat);
     1206      }
     1207#endif
     1208
    12091209    updateT(strat);
    1210    
     1210
    12111211#ifndef HAVE_RINGS
    12121212    strat->posInT = posInT2;
    12131213    reorderT(strat);
    12141214#else
    1215         if ( (!rField_is_Ring(currRing)) || (currRing->OrdSgn != -1))
    1216                 {
    1217                 strat->posInT = posInT2;
    1218             reorderT(strat);
    1219         }
     1215  if ( (!rField_is_Ring(currRing)) || (currRing->OrdSgn != -1))
     1216    {
     1217    strat->posInT = posInT2;
     1218      reorderT(strat);
     1219      }
    12201220#endif
    12211221  }
     
    12561256      if (TEST_OPT_FINDET)
    12571257        return;
    1258        
     1258
    12591259      /*- cuts elements in L above noether and reorders L -*/
    12601260      updateLHC(strat);
     
    13771377  {
    13781378    if(currRing->OrdSgn == -1)
    1379                 {strat->red = redRiloc;}
    1380         else   
    1381         {strat->red2 = redRing;}
     1379      {strat->red = redRiloc;}
     1380    else
     1381      {strat->red2 = redRing;}
    13821382  }
    13831383#endif
     
    14531453    strat->HCord = 32000;/*- very large -*/
    14541454  }
    1455  
     1455
    14561456    #ifdef HAVE_RINGS
    1457         if (rField_is_Ring(currRing))
    1458                 strat->red = redRiloc;
     1457    if (rField_is_Ring(currRing))
     1458      strat->red = redRiloc;
    14591459  #endif
    14601460
     
    15871587      else strat->noClearS=TRUE;
    15881588    }
    1589    
     1589
    15901590        #if ADIDEBUG
    1591                 #ifdef KDEBUG
    1592                
    1593                 PrintLn();
    1594                 PrintS("-------------------------------- LOOP ");printf("%d",loop_count);
    1595                 PrintS(" ---------------------------------------");
    1596                 PrintLn();
    1597                 //print the list L: (p1,p2,p)
    1598                 PrintLn();
    1599                 PrintS("                The pair list L -- in loop ");
    1600                 printf("%d",loop_count);PrintS(" -- is: "); PrintLn();
    1601                 for(int iii=0;iii<=strat->Ll;iii++)
    1602                         {
    1603                         PrintLn();
    1604                         PrintS("                L[");printf("%d",iii);Print("]: ");
    1605                         PrintLn();
    1606                         PrintS("                    ");p_Write(strat->L[iii].p1,strat->tailRing);
    1607                         PrintS("                    ");p_Write(strat->L[iii].p2,strat->tailRing);
    1608                         PrintS("                    ");p_Write(strat->L[iii].p,strat->tailRing);
    1609                         }
    1610                 PrintLn();
    1611                 #endif
    1612                 #endif
    1613 
    1614    
     1591    #ifdef KDEBUG
     1592
     1593    PrintLn();
     1594    PrintS("-------------------------------- LOOP ");printf("%d",loop_count);
     1595    PrintS(" ---------------------------------------");
     1596    PrintLn();
     1597    //print the list L: (p1,p2,p)
     1598    PrintLn();
     1599    PrintS("    The pair list L -- in loop ");
     1600    printf("%d",loop_count);PrintS(" -- is: "); PrintLn();
     1601    for(int iii=0;iii<=strat->Ll;iii++)
     1602      {
     1603      PrintLn();
     1604      PrintS("    L[");printf("%d",iii);Print("]: ");
     1605      PrintLn();
     1606      PrintS("        ");p_Write(strat->L[iii].p1,strat->tailRing);
     1607      PrintS("        ");p_Write(strat->L[iii].p2,strat->tailRing);
     1608      PrintS("        ");p_Write(strat->L[iii].p,strat->tailRing);
     1609      }
     1610    PrintLn();
     1611    #endif
     1612    #endif
     1613
     1614
    16151615    strat->P = strat->L[strat->Ll];/*- picks the last element from the lazyset L -*/
    16161616    if (strat->Ll==0) strat->interpt=TRUE;
    16171617    strat->Ll--;
    16181618
    1619                 #if ADIDEBUG
    1620                 #ifdef KDEBUG   
    1621                 PrintS("                My new pair P = (p1,p2,p) is: "); PrintLn();
    1622                 PrintS("                        p1 = "); p_Write(strat->P.p1,strat->tailRing);PrintLn();
    1623                 PrintS("                        p2 = "); p_Write(strat->P.p2,strat->tailRing);PrintLn();
    1624                 PrintS("                        p = "); p_Write(strat->P.p,strat->tailRing); PrintLn();
    1625                 PrintLn();
    1626                 PrintS("                The old reducer list T -- at the beg of loop ");
    1627                 printf("%d",loop_count);PrintS(" -- is :");
    1628                 if(strat->tl<0)
    1629                         {PrintS(" Empty.");PrintLn();}
    1630                 else
    1631                 for(int iii=0;iii<=strat->tl;iii++)
    1632                         {               
    1633                                 PrintLn();
    1634                                 PrintS("                T[");printf("%d",iii);PrintS("]:");
    1635                                 p_Write(strat->T[iii].p,strat->T->tailRing);
    1636                         }
    1637                 PrintLn();
    1638                
    1639                 #endif /* ADIDEBUG */   
    1640                 #endif
     1619    #if ADIDEBUG
     1620    #ifdef KDEBUG
     1621    PrintS("    My new pair P = (p1,p2,p) is: "); PrintLn();
     1622    PrintS("      p1 = "); p_Write(strat->P.p1,strat->tailRing);PrintLn();
     1623    PrintS("      p2 = "); p_Write(strat->P.p2,strat->tailRing);PrintLn();
     1624    PrintS("      p = "); p_Write(strat->P.p,strat->tailRing); PrintLn();
     1625    PrintLn();
     1626    PrintS("    The old reducer list T -- at the beg of loop ");
     1627    printf("%d",loop_count);PrintS(" -- is :");
     1628    if(strat->tl<0)
     1629      {PrintS(" Empty.");PrintLn();}
     1630    else
     1631    for(int iii=0;iii<=strat->tl;iii++)
     1632      {
     1633        PrintLn();
     1634        PrintS("    T[");printf("%d",iii);PrintS("]:");
     1635        p_Write(strat->T[iii].p,strat->T->tailRing);
     1636      }
     1637    PrintLn();
     1638
     1639    #endif /* ADIDEBUG */
     1640    #endif
    16411641
    16421642    // create the real Spoly
     
    17071707      if (rField_is_Ring(currRing))
    17081708      {
    1709         superenterpairs(strat->P.p,strat->sl,strat->P.ecart,0,strat, strat->tl);
    1710        
     1709        superenterpairs(strat->P.p,strat->sl,strat->P.ecart,0,strat, strat->tl);
     1710
    17111711        #if ADIDEBUG
    17121712        PrintLn();
    1713                 PrintS("                The new pair list L -- after superenterpairs in loop ");
    1714                 printf("%d",loop_count);PrintS(" -- is: "); PrintLn();
    1715                 for(int iii=0;iii<=strat->Ll;iii++)
    1716                 {
    1717                 PrintLn();
    1718                 PrintS("                L[");printf("%d",iii);PrintS("]:");PrintLn();
    1719                 PrintS("                     ");p_Write(strat->L[iii].p1,strat->tailRing);
    1720                 PrintS("                     ");p_Write(strat->L[iii].p2,strat->tailRing);
    1721                 PrintS("                     ");p_Write(strat->L[iii].p,strat->tailRing);
    1722                 }
    1723                 #endif
    1724       }
    1725      
     1713    PrintS("    The new pair list L -- after superenterpairs in loop ");
     1714    printf("%d",loop_count);PrintS(" -- is: "); PrintLn();
     1715    for(int iii=0;iii<=strat->Ll;iii++)
     1716    {
     1717    PrintLn();
     1718    PrintS("    L[");printf("%d",iii);PrintS("]:");PrintLn();
     1719    PrintS("         ");p_Write(strat->L[iii].p1,strat->tailRing);
     1720    PrintS("         ");p_Write(strat->L[iii].p2,strat->tailRing);
     1721    PrintS("         ");p_Write(strat->L[iii].p,strat->tailRing);
     1722    }
     1723    #endif
     1724      }
    17261725      else
    17271726#endif
     
    17331732
    17341733      // apply hilbert criterion
    1735       if (hilb!=NULL) 
    1736         {
    1737         if (strat->homog==isHomog)
    1738                 khCheck(Q,w,hilb,hilbeledeg,hilbcount,strat);
    1739         else
    1740                 khCheckLocInhom(Q,w,hilb,hilbcount,strat);
    1741         }
     1734      if (hilb!=NULL)
     1735        {
     1736        if (strat->homog==isHomog)
     1737          khCheck(Q,w,hilb,hilbeledeg,hilbcount,strat);
     1738        else
     1739          khCheckLocInhom(Q,w,hilb,hilbcount,strat);
     1740        }
    17421741
    17431742      // clear strat->P
    17441743      if (strat->P.lcm!=NULL)
    17451744#if defined(HAVE_RINGS) || defined(HAVE_RINGS_LOC)
    1746         pLmDelete(strat->P.lcm);
     1745  pLmDelete(strat->P.lcm);
    17471746#else
    17481747        pLmFree(strat->P.lcm);
     
    17721771    }
    17731772    assume(kTest_TS(strat));
    1774    
    1775         #if ADIDEBUG
    1776         PrintLn();
    1777         PrintS("                The new reducer list T -- at the end of loop ");
    1778         printf("%d",loop_count);PrintS(" -- is "); PrintLn();
    1779         for(int iii=0;iii<=strat->tl;iii++)
    1780                 {
    1781                 PrintLn();
    1782                 PrintS("                T[");printf("%d",iii);PrintS("]:");
    1783                 p_Write(strat->T[iii].p,strat->tailRing);
    1784                 }
    1785         PrintLn();
    1786        
    1787         loop_count++;
    1788         #endif /* ADIDEBUG */   
     1773
     1774      #if ADIDEBUG
     1775  PrintLn();
     1776  PrintS("    The new reducer list T -- at the end of loop ");
     1777  printf("%d",loop_count);PrintS(" -- is "); PrintLn();
     1778  for(int iii=0;iii<=strat->tl;iii++)
     1779    {
     1780    PrintLn();
     1781    PrintS("    T[");printf("%d",iii);PrintS("]:");
     1782    p_Write(strat->T[iii].p,strat->tailRing);
     1783    }
     1784  PrintLn();
     1785
     1786  loop_count++;
     1787  #endif /* ADIDEBUG */
    17891788  }
    17901789  /*- complete reduction of the standard basis------------------------ -*/
     
    19071906  }
    19081907#ifdef KDEBUG
    1909 //      kDebugPrint(strat);
     1908//  kDebugPrint(strat);
    19101909#endif
    19111910  /*- compute------------------------------------------- -*/
     
    22162215    {
    22172216    if(currRing->OrdSgn == -1)
    2218                 r=mora(F,Q,NULL,hilb,strat);
    2219         else
    2220         r=bba(F,Q,NULL,hilb,strat);
     2217      r=mora(F,Q,NULL,hilb,strat);
     2218    else
     2219      r=bba(F,Q,NULL,hilb,strat);
    22212220    }
    22222221  else
     
    23792378        r=sba(F,Q,*w,hilb,strat);
    23802379      else
    2381                           r=sba(F,Q,NULL,hilb,strat);
     2380        r=sba(F,Q,NULL,hilb,strat);
    23822381    }
    23832382  }
     
    31193118    idDelete(&FF);
    31203119    null=idInit(1,1);
    3121     if (need_retry) 
    3122       res1=kNF(null,Q,res,0,KSTD_NF_LAZY); 
    3123     else 
    3124       res1=kNF(null,Q,res); 
     3120    if (need_retry)
     3121      res1=kNF(null,Q,res,0,KSTD_NF_LAZY);
     3122    else
     3123      res1=kNF(null,Q,res);
    31253124    idDelete(&res);
    31263125    res=res1;
Note: See TracChangeset for help on using the changeset viewer.