Changeset e702ac2 in git for kernel/kstd2.cc


Ignore:
Timestamp:
Dec 3, 2013, 8:31:38 PM (10 years ago)
Author:
Christian Eder
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
88bb8861e1718d85807ce45f043eba5c778545e1
Parents:
9c07fe126bfeead6b8df47d1c2efa3d63d6e78c5
git-author:
Christian Eder <ederc@mathematik.uni-kl.de>2013-12-03 20:31:38+01:00
git-committer:
Christian Eder <ederc@mathematik.uni-kl.de>2013-12-12 13:51:29+01:00
Message:
fixes problems with TOP sba computations
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/kstd2.cc

    r9c07fe re702ac2  
    5555#define SBA_TAIL_RED                        1
    5656#define SBA_PRODUCT_CRITERION               0
    57 #define SBA_PRINT_ZERO_REDUCTIONS           0
    58 #define SBA_PRINT_REDUCTION_STEPS           0
    59 #define SBA_PRINT_OPERATIONS                0
    60 #define SBA_PRINT_SIZE_G                    0
    61 #define SBA_PRINT_SIZE_SYZ                  0
     57#define SBA_PRINT_ZERO_REDUCTIONS           1
     58#define SBA_PRINT_REDUCTION_STEPS           1
     59#define SBA_PRINT_OPERATIONS                1
     60#define SBA_PRINT_SIZE_G                    1
     61#define SBA_PRINT_SIZE_SYZ                  1
    6262#define SBA_PRINT_PRODUCT_CRITERION         0
    6363
     
    17911791    #endif
    17921792    if (strat->Ll== 0) strat->interpt=TRUE;
     1793    /*
    17931794    if (TEST_OPT_DEGBOUND
    17941795        && ((strat->honey && (strat->L[strat->Ll].ecart+currRing->pFDeg(strat->L[strat->Ll].p,currRing)>Kstd1_deg))
    17951796            || ((!strat->honey) && (currRing->pFDeg(strat->L[strat->Ll].p,currRing)>Kstd1_deg))))
    17961797    {
    1797       /*
    1798        *stops computation if
    1799        * 24 IN test and the degree +ecart of L[strat->Ll] is bigger then
    1800        *a predefined number Kstd1_deg
    1801        */
     1798     
     1799       //stops computation if
     1800       // 24 IN test and the degree +ecart of L[strat->Ll] is bigger then
     1801       //a predefined number Kstd1_deg
    18021802      while ((strat->Ll >= 0)
    18031803        && (strat->L[strat->Ll].p1!=NULL) && (strat->L[strat->Ll].p2!=NULL)
     
    18091809      else strat->noClearS=TRUE;
    18101810    }
     1811    */
    18111812    if (strat->sbaOrder == 1 && pGetComp(strat->L[strat->Ll].sig) != strat->currIdx)
    18121813    {
     
    18291830    strat->Ll--;
    18301831    /* reduction of the element choosen from L */
     1832
    18311833    if (!strat->rewCrit2(strat->P.sig, ~strat->P.sevSig, strat, strat->P.checked+1)) {
    18321834      //#if 1
     
    18431845      {
    18441846        // deletes the short spoly
     1847        /*
    18451848#ifdef HAVE_RINGS
    18461849        if (rField_is_Ring(currRing))
     
    18491852#endif
    18501853          pLmFree(strat->P.p);
    1851 
    1852         // TODO: needs some masking
    1853         // TODO: masking needs to vanish once the signature
    1854         //       sutff is completely implemented
    1855         strat->P.p = NULL;
     1854*/
     1855          // TODO: needs some masking
     1856          // TODO: masking needs to vanish once the signature
     1857          //       sutff is completely implemented
     1858          strat->P.p = NULL;
    18561859        poly m1 = NULL, m2 = NULL;
    18571860
     
    18811884        strat->P.PrepareRed(strat->use_buckets);
    18821885      }
    1883 
    18841886      if (strat->P.p == NULL && strat->P.t_p == NULL)
    18851887      {
     
    18881890      else
    18891891      {
    1890 
    18911892        //#if 1
    18921893#ifdef DEBUGF5
     
    19101911      }
    19111912    } else {
    1912         red_result = 2;
    1913       }
    1914       if (errorreported)  break;
     1913      /*
     1914      if (strat->P.lcm != NULL)
     1915        pLmFree(strat->P.lcm);
     1916        */
     1917      red_result = 2;
     1918    }
     1919    if (errorreported)  break;
     1920
     1921//#if 1
     1922#ifdef DEBUGF5
     1923    if (red_result != 0) {
     1924        Print("Poly after red: ");
     1925        pWrite(pHead(strat->P.p));
     1926        pWrite(strat->P.GetLmCurrRing());
     1927        pWrite(strat->P.sig);
     1928        printf("%d\n",red_result);
     1929    }
     1930#endif
    19151931
    19161932    if (strat->overflow)
     
    19511967      // therefore we call pContent instead of pNorm
    19521968#if SBA_TAIL_RED
    1953       if ((TEST_OPT_INTSTRATEGY) || (rField_is_Ring(currRing)))
    1954       {
    1955         strat->P.pCleardenom();
    1956         if ((TEST_OPT_REDSB)||(TEST_OPT_REDTAIL))
    1957         {
    1958           strat->P.p = redtailSba(&(strat->P),pos-1,strat, withT);
     1969      if (strat->sbaOrder != 2) {
     1970        if ((TEST_OPT_INTSTRATEGY) || (rField_is_Ring(currRing)))
     1971        {
    19591972          strat->P.pCleardenom();
    1960         }
    1961       }
    1962       else
    1963       {
    1964         strat->P.pNorm();
    1965         if ((TEST_OPT_REDSB)||(TEST_OPT_REDTAIL))
    1966           strat->P.p = redtailSba(&(strat->P),pos-1,strat, withT);
     1973          if ((TEST_OPT_REDSB)||(TEST_OPT_REDTAIL))
     1974          {
     1975            strat->P.p = redtailSba(&(strat->P),pos-1,strat, withT);
     1976            strat->P.pCleardenom();
     1977          }
     1978        }
     1979        else
     1980        {
     1981          strat->P.pNorm();
     1982          if ((TEST_OPT_REDSB)||(TEST_OPT_REDTAIL))
     1983            strat->P.p = redtailSba(&(strat->P),pos-1,strat, withT);
     1984        }
    19671985      }
    19681986#endif
     
    20202038      enterT(strat->P, strat);
    20212039      strat->T[strat->tl].is_sigsafe = FALSE;
     2040      /*
     2041      printf("hier\n");
     2042      pWrite(strat->P.GetLmCurrRing());
     2043      pWrite(strat->P.sig);
     2044      */
    20222045#ifdef HAVE_RINGS
    20232046      if (rField_is_Ring(currRing))
Note: See TracChangeset for help on using the changeset viewer.