Changeset 2dbe57 in git


Ignore:
Timestamp:
Feb 3, 2013, 11:41:08 PM (10 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
Children:
f4d7641e74a466b25fca59f236f67698ac0ac369
Parents:
f18f58e98999305024a09db437ce1cd47ef15d21
git-author:
Martin Lee <martinlee84@web.de>2013-02-03 23:41:08+01:00
git-committer:
Martin Lee <martinlee84@web.de>2013-02-18 15:00:18+01:00
Message:
chg: clean up and editing
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqFactorize.cc

    rf18f58 r2dbe57  
    5050TIMING_DEFINE_PRINT(fac_fq_compress)
    5151
    52 
    53 void out_cf(const char *s1,const CanonicalForm &f,const char *s2);
    54 void out_cff(CFFList &L);
    5552
    5653static inline
     
    13281325             const CFArray& evalPoint)
    13291326{
    1330   for (int i= 0; i < evalPoint.size(); i++)
    1331     out_cf ("evalPoint= ", evalPoint[i], "\n");
    1332 
    13331327  CanonicalForm F= G;
    13341328  CFFList sqrfFactorization;
     
    13461340  CanonicalForm test= evalSqrfPartF.getFirst() (evalPoint[0], 2);
    13471341
    1348   out_cf ("test= ", test, "\n");
    1349   out_cf ("sqrfPartF= ", sqrfPartF, "\n");
    13501342  if (degree (test) != degree (sqrfPartF, 1) || test.inCoeffDomain())
    13511343    return 0;
     
    13891381      for (iter= bufSqrfFactors [i]; iter.hasItem(); iter++)
    13901382      {
    1391         out_cf ("bufSqrfFactors[0]= ", iter.getItem().factor(), "\n");
    13921383        if (iter.getItem().factor().inCoeffDomain())
    13931384          continue;
     
    14001391    else
    14011392    {
    1402       printf ("i= %d\n", i);
    14031393      for (iter= bufSqrfFactors [i]; iter.hasItem(); iter++)
    14041394      {
     
    14081398                                  Lc (iter.getItem().factor()),
    14091399                                  iter.getItem().exp());
    1410         out_cf ("bufSqrfFactors[i]= ", iter.getItem().factor(), "\n");
    14111400        if (!find (factors, iter.getItem().factor()))
    14121401          factors.append (iter.getItem().factor());
     
    14161405
    14171406  test= prod (factors);
    1418   out_cf ("test= ", test, "\n");
    14191407  tmp= evalSqrfPartF.getFirst() (evalPoint[0],2);
    1420   out_cf ("tmp= ", tmp, "\n");
    14211408  if (test/Lc (test) != tmp/Lc (tmp))
    14221409    return 0;
     
    14321419                       )
    14331420{
    1434   out_cf ("LCF= ", LCF, "\n");
    1435   printf ("LCFFactors.length()= %d\n", LCFFactors.length());
    1436   for (CFListIterator iter= evaluation; iter.hasItem(); iter++)
    1437     out_cf ("evaluation= ", iter.getItem(), "\n");
    1438   for (CFListIterator iter= LCFFactors; iter.hasItem(); iter++)
    1439     out_cf ("LCFFactors= ", iter.getItem(), "\n");
    1440 
    1441   for (int j= 0; j < lSecondVarLCs; j++)
    1442   {
    1443     printf ("differentSecondVar= ");
    1444     for (CFListIterator iter= differentSecondVarLCs[j]; iter.hasItem(); iter++)
    1445       out_cf ("", iter.getItem(), " ");
    1446     printf ("\n");
    1447   }
    14481421  y= Variable (1);
    14491422  if (LCF.inCoeffDomain())
     
    14521425    for (int i= 1; i <= LCFFactors.length() + 1; i++)
    14531426      result.append (1);
    1454       printf ("exit00\n");
    14551427    return result;
    14561428  }
     
    14981470      result.insert (Lc (LCF));
    14991471    else
    1500     {
    1501       //for (CFListIterator i= result; i.hasItem(); i++)
    1502         //result.append (1);
    15031472      result.insert (LCF);
    1504     }
    1505       printf ("exit0\n");
     1473
    15061474    return result;
    15071475  }
     
    15281496  buf= swap;
    15291497  for (int i= 0; i < evaluation.length() - 1; i++)
    1530   {
    1531     out_cf ("buf[i]= ", buf[i], "\n");
    15321498    evalPoint[i]= buf[i+1];
    1533   }
    1534   out_cf ("buf[i]= ", buf[evaluation.length()-1], "\n");
     1499
    15351500  int pass= testFactors (F, factors, alpha, sqrfPartF,
    15361501                         bufFactors, bufSqrfFactors, evalSqrfPartF, evalPoint);
     
    15701535        bufBufFactors= bufFactors;
    15711536        evalPoint= CFArray (evaluation.length() - 1);
    1572         out_cf ("x= ", x, "\n");
    1573         out_cf ("z= ", z, "\n");
    15741537        for (int k= 1; k < evaluation.length(); k++)
    15751538        {
     
    15791542            evalPoint[k-1]= buf[0];
    15801543        }
    1581         printf ("swap war nötig\n");
    1582         for (int jj= 0; jj < evalPoint.size(); jj++)
    1583           out_cf ("evalPoint= ", evalPoint[jj], "\n");
    15841544        pass= testFactors (bufF, bufBufFactors, alpha, sqrfPartF, bufFactors,
    15851545                           bufSqrfFactors, evalSqrfPartF, evalPoint);
    1586         //pass= false;
    15871546        if (pass)
    15881547        {
     
    16031562            result.append (1);
    16041563          result= distributeContent (result, differentSecondVarLCs, lSecondVarLCs);
    1605           printf ("this exit\n");
    16061564          y= Variable (1);
    1607           /*if (!result.getFirst().inCoeffDomain())
    1608           {
    1609             CFListIterator iter= result;
    1610             CanonicalForm tmp= iter.getItem();
    1611             iter++;
    1612             for (; iter.hasItem(); iter++)
    1613               iter.getItem() *= tmp;
    1614           }
    1615           y= Variable (1);*/
    16161565          delete [] bufSqrfFactors;
    16171566          return result;
     
    16271576      result.append (1);
    16281577    result= distributeContent (result, differentSecondVarLCs, lSecondVarLCs);
    1629     printf ("no that exit\n");
    1630     /*if (!result.getFirst().inCoeffDomain())
    1631     {
    1632       CFListIterator iter= result;
    1633       CanonicalForm tmp= iter.getItem();
    1634       iter++;
    1635       for (; iter.hasItem(); iter++)
    1636         iter.getItem() *= tmp;
    1637     }*/
    16381578    y= Variable (1);
    16391579    delete [] bufSqrfFactors;
     
    17861726  result.insert (N (F));
    17871727
    1788   out_cf ("result.getFirst()= ", result.getFirst(), "\n");
    1789   out_cf ("content (result.getFirst())= ", content (result.getFirst()), "\n");
    1790   printf ("foundDifferent= %d\n", foundDifferent);
    1791     for (int i= 0; i < lSecondVarLCs; i++)
    1792     {
    1793       printf ("differentSecondVarLCs ");
    1794       for (CFListIterator pp= differentSecondVarLCs[i]; pp.hasItem(); pp++)
    1795         out_cf ("", pp.getItem(), " ");
    1796       printf ("\n");
    1797     }
    1798       for (CFListIterator pp= LCFFactors; pp.hasItem(); pp++)
    1799         out_cf ("LCFactors", pp.getItem(), "\n");
    1800   printf ("y.level()= %d\n", y.level());
    1801   printf ("x.level()= %d\n", x.level());
    1802   printf ("z.level()= %d\n", z.level());
    1803 
    18041728  result= distributeContent (result, differentSecondVarLCs, lSecondVarLCs);
    18051729
    1806         for (CFListIterator iter= result; iter.hasItem(); iter++)
    1807           out_cf ("result bis kurz vor schluß= ", iter.getItem(), "\n");
    1808 
    18091730  if (!result.getFirst().inCoeffDomain())
    18101731  {
     1732    // prepare input for recursion
    18111733    if (foundDifferent)
    18121734    {
    18131735      for (CFListIterator i= result; i.hasItem(); i++)
    18141736        i.getItem()= swapvar (i.getItem(), Variable (2), y);
    1815       CFList l= differentSecondVarLCs [j]; //nasty
     1737      CFList l= differentSecondVarLCs [j];
    18161738      for (CFListIterator i= l; i.hasItem(); i++)
    18171739        i.getItem()= swapvar (i.getItem(), y, z);
    18181740      differentSecondVarLCs [j]= l;
    18191741    }
    1820     printf ("not the whole leading coeff\n");
    1821     out_cf ("result.getFirst()= ", result.getFirst(), "\n");
    1822     out_cf ("y= ", y, "\n");
    1823     out_cf ("LCF= ", LCF, "\n");
    1824     for (int i= 0; i < lSecondVarLCs; i++)
    1825     {
    1826       printf ("differentSecondVarLCs ");
    1827       for (CFListIterator pp= differentSecondVarLCs[i]; pp.hasItem(); pp++)
    1828         out_cf ("", pp.getItem(), " ");
    1829       printf ("\n");
    1830     }
    1831     CFListIterator i; //= result;
    1832     CanonicalForm tmp;
    1833     /*if (foundDifferent)
    1834       i.getItem()= swapvar (i.getItem(), Variable (2), y);
    1835 
    1836     tmp= i.getItem();
    1837 
    1838     i++;
    1839     for (; i.hasItem(); i++)
    1840     {
    1841       out_cf ("lc= ", i.getItem(), "\n");
    1842       if (foundDifferent)
    1843         i.getItem()= swapvar (i.getItem(), Variable (2), y); //*tmp;
    1844     }*/
    1845     for (i=evaluation; i.hasItem(); i++)
    1846       out_cf ("eval= ", i.getItem(), "\n");
    1847     for (int jj= 0; jj < evalPoint.size(); jj++)
    1848       out_cf ("evalPoint= ", evalPoint[jj], "\n");
    18491742
    18501743    F= result.getFirst();
     
    18641757      }
    18651758    }
    1866     printf ("y.level()= %d\n", y.level());
    1867     printf ("lSecondVarLCs= %d\n", lSecondVarLCs);
    18681759lcretry:
    18691760    if (lSecondVarLCs - level > 0)
     
    18721763      int j= lSecondVarLCs+2;
    18731764      CanonicalForm swap;
     1765      CFListIterator i;
    18741766      for (i= evaluation2; i.hasItem(); i++, j--)
    18751767      {
     
    18941786        goto lcretry;
    18951787      }
    1896       i= newLCs; //kann leer sein!?
     1788      i= newLCs;
    18971789      CFListIterator iter= result;
    18981790      iter++;
     
    19031795        {
    19041796          int count= evaluation.length()+1;
    1905           for (CFListIterator iter2= evaluation2; iter2.hasItem(); iter2++, count--)
     1797          for (CFListIterator iter2= evaluation2; iter2.hasItem(); iter2++,
     1798                                                                    count--)
    19061799          {
    19071800            if (count != level+3)
     
    19281821              {
    19291822                int count= evaluation.length()+1;
    1930                 for (CFListIterator iter2= evaluation2; iter2.hasItem(); iter2++, count--)
     1823                for (CFListIterator iter2= evaluation2; iter2.hasItem();iter2++,
     1824                                                                        count--)
    19311825                {
    19321826                  if (count != j+3)
     
    19431837        evaluation2.removeLast();
    19441838      Variable dummyvar= Variable (1);
    1945       for (i= evaluation2; i.hasItem(); i++)
    1946         out_cf ("evaluation2= ", i.getItem(), "\n");
    1947       for (i= newLCs; i.hasItem(); i++)
    1948         out_cf ("newLCs= ", i.getItem(), "\n");
    1949 
    1950       //// test
     1839
    19511840      CanonicalForm newLCF= result.getFirst();
    19521841      newLCF=swapvar (newLCF, Variable (2), Variable (level+3));
    19531842      for (i=newLCs; i.hasItem(); i++)
    19541843        i.getItem()= swapvar (i.getItem(), Variable (2), Variable (level+3));
    1955       for (int j= 0; j < lSecondVarLCs-level-1;j++)
    1956       {
    1957         for (i= differentSecondVarLCs2[j]; i.hasItem(); i++)
    1958           i.getItem()= swapvar (i.getItem(), Variable (2+j+1), Variable (level+3+j+1));
    1959         newLCF= swapvar (newLCF, Variable (2+j+1), Variable (level+3+j+1));
    1960       }
    1961       ////
    1962       for (int j= 0; j < lSecondVarLCs-level-1; j++)
    1963       {
    1964         printf ("differentSecondVarLCs2\n");
    1965         for (i= differentSecondVarLCs2[j]; i.hasItem(); i++)
    1966           out_cf ("", i.getItem(), " ");
    1967         printf ("\n");
    1968       }
    1969       for (i= newLCs; i.hasItem(); i++)
    1970         out_cf ("newLCs= ", i.getItem(), "\n");
    1971       out_cf ("newLCF= ", newLCF, "\n");
    1972       printf ("before recursion\n");
    1973       CFList recursiveResult= precomputeLeadingCoeff(newLCF, newLCs, alpha, evaluation2, differentSecondVarLCs2, lSecondVarLCs - level - 1, dummyvar);
     1844      for (int j= 1; j < lSecondVarLCs-level;j++)
     1845      {
     1846        for (i= differentSecondVarLCs2[j-1]; i.hasItem(); i++)
     1847          i.getItem()= swapvar (i.getItem(), Variable (2+j),
     1848                                             Variable (level+3+j));
     1849        newLCF= swapvar (newLCF, Variable (2+j), Variable (level+3+j));
     1850      }
     1851
     1852      CFList recursiveResult=
     1853      precomputeLeadingCoeff (newLCF, newLCs, alpha, evaluation2,
     1854                              differentSecondVarLCs2, lSecondVarLCs - level - 1,
     1855                              dummyvar);
    19741856
    19751857      if (dummyvar.level() != 1)
     
    19811863      {
    19821864        for (int j= lSecondVarLCs-level-1; j > 0; j--)
    1983           i.getItem()=swapvar (i.getItem(), Variable (2+j), Variable (level+3+j));
     1865          i.getItem()=swapvar (i.getItem(), Variable (2+j),
     1866                                      Variable (level+3+j));
    19841867        i.getItem()= swapvar (i.getItem(), Variable (2), Variable (level+3));
    19851868      }
    19861869
    1987       out_cf ("recursiveResult.getFirst()= ", recursiveResult.getFirst(), "\n");
    19881870      if (recursiveResult.getFirst() == result.getFirst())
    19891871      {
    1990         /*i= result;
    1991         i++;
    1992         for (; i.hasItem(); i++)
    1993           i.getItem() *= tmp;*/
    19941872        delete [] bufSqrfFactors;
    19951873        delete [] differentSecondVarLCs2;
     
    19981876      else
    19991877      {
    2000         CFListIterator iter=recursiveResult;
     1878        iter=recursiveResult;
    20011879        i= result;
    20021880        i.getItem()= iter.getItem();
     
    20041882        iter++;
    20051883        for (; i.hasItem(); i++, iter++)
    2006         {
    20071884          i.getItem() *= iter.getItem();
    2008         }
    2009         for (CFListIterator iter= result; iter.hasItem(); iter++)
    2010           out_cf ("result am Ende= ", iter.getItem(), "\n");
    20111885        delete [] differentSecondVarLCs2;
    20121886      }
     
    25232397  CanonicalForm lcmCont= lcmContent (A, contentAi);
    25242398  A /= lcmCont;
    2525   out_cf ("lcmCont= ", lcmCont, "\n");
    2526   for (int i= 1; i <= A.level(); i++)
    2527     out_cf ("LC= ", LC (A,i), "\n");
    25282399  TIMING_END_AND_PRINT (fac_fq_content, "time to extract content over Fq: ");
    25292400
     
    29152786
    29162787  CanonicalForm LCmultiplier= leadingCoeffs.getFirst();
    2917   out_cf ("LCmultiplier= ", LCmultiplier, "\n");
    29182788  bool LCmultiplierIsConst= LCmultiplier.inCoeffDomain();
    29192789  leadingCoeffs.removeFirst();
     
    34903360tryAgainWithoutHeu:
    34913361  TIMING_START (fac_fq_shift_to_zero);
    3492   out_cf ("LC (A,1)= ", LC (A,1), "\n");
    3493   out_cf ("LC (oldA,1)= ", LC (oldA,1), "\n");
    34943362  A= shift2Zero (A, Aeval, evaluation);
    34953363
     
    35463414  if (noOneToOne)
    35473415  {
    3548     printf ("noOneToOne\n");
    35493416    if (!LCmultiplierIsConst && LCheuristic)
    35503417    {
Note: See TracChangeset for help on using the changeset viewer.