Changeset 24a96f8 in git for factory/facFqFactorize.cc


Ignore:
Timestamp:
Nov 24, 2014, 10:40:02 PM (9 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
Children:
9905e9eeb3329e6c42fcc9b2c0972cdf89fa3202
Parents:
f4fc9b40c900a9c6dce877b3b60856d2c433e962
git-author:
Martin Lee <martinlee84@web.de>2014-11-24 22:40:02+01:00
git-committer:
Martin Lee <martinlee84@web.de>2014-11-25 20:39:45+01:00
Message:
fix: LCHeuristic
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqFactorize.cc

    rf4fc9b r24a96f8  
    26212621      iter2.getItem() *= power (xx, degree (LC (iter.getItem(),1), xx));
    26222622  }
    2623   CanonicalForm tmp;
     2623  CanonicalForm tmp, quot1, quot2, quot3;
    26242624  iter2= vars1;
    26252625  for (iter= leadingCoeffs[lengthAeval-1]; iter.hasItem(); iter++, iter2++)
     
    26612661            {
    26622662              tmp= ii.getItem().factor();
    2663               iter2.getItem() /= tmp;
    2664               CFListIterator iter3= evaluation;
    2665               for (int jj= A.level(); jj > 2; jj--, iter3++)
    2666                 tmp= tmp (iter3.getItem(), jj);
    2667               if (!tmp.inCoeffDomain())
     2663              if (fdivides (tmp, iter2.getItem(), quot1))
    26682664              {
    2669                 int index3= 1;
    2670                 for (iter3= biFactors; iter3.hasItem(); iter3++, index3++)
     2665                CFListIterator iter3= evaluation;
     2666                for (int jj= A.level(); jj > 2; jj--, iter3++)
     2667                  tmp= tmp (iter3.getItem(), jj);
     2668                if (!tmp.inCoeffDomain())
    26712669                {
    2672                   if (index3 == index2)
     2670                  int index3= 1;
     2671                  for (iter3= biFactors; iter3.hasItem(); iter3++, index3++)
    26732672                  {
    2674                     iter3.getItem() /= tmp;
    2675                     iter3.getItem() /= Lc (iter3.getItem());
    2676                     break;
     2673                    if (index3 == index2)
     2674                    {
     2675                      if (fdivides (tmp, iter3.getItem(), quot2))
     2676                      {
     2677                        if (fdivides (ii.getItem().factor(), A, quot3))
     2678                        {
     2679                          A               = quot3;
     2680                          iter2.getItem() = quot2;
     2681                          iter3.getItem() = quot3;
     2682                          iter3.getItem() /= Lc (iter3.getItem());
     2683                          break;
     2684                        }
     2685                      }
     2686                    }
    26772687                  }
    26782688                }
    26792689              }
    2680               A /= ii.getItem().factor();
    26812690            }
    26822691          }
     
    26992708            {
    27002709              tmp= power (ii.getItem().factor(), ii.getItem().exp());
    2701               iter2.getItem() /= tmp;
    2702               A /= tmp;
    2703               CFListIterator iter3= evaluation;
    2704               for (int jj= A.level(); jj > 2; jj--, iter3++)
    2705                 tmp= tmp (iter3.getItem(), jj);
    2706               if (!tmp.inCoeffDomain())
     2710              if (fdivides (tmp, A, quot1))
    27072711              {
    2708                 int index3= 1;
    2709                 for (iter3= biFactors; iter3.hasItem(); iter3++, index3++)
     2712                if (fdivides (tmp, iter2.getItem()))
    27102713                {
    2711                   if (index3 == index2)
     2714                  CFListIterator iter3= evaluation;
     2715                  for (int jj= A.level(); jj > 2; jj--, iter3++)
     2716                    tmp= tmp (iter3.getItem(), jj);
     2717                  if (!tmp.inCoeffDomain())
    27122718                  {
    2713                     iter3.getItem() /= tmp;
    2714                     iter3.getItem() /= Lc (iter3.getItem());
    2715                     break;
     2719                    int index3= 1;
     2720                    for (iter3= biFactors; iter3.hasItem(); iter3++, index3++)
     2721                    {
     2722                      if (index3 == index2)
     2723                      {
     2724                        if (fdivides (tmp, iter3.getItem(), quot3))
     2725                        {
     2726                          A               =  quot1;
     2727                          iter2.getItem() =  quot2;
     2728                          iter3.getItem() =  quot3;
     2729                          iter3.getItem() /= Lc (iter3.getItem());
     2730                          break;
     2731                        }
     2732                      }
     2733                    }
    27162734                  }
    27172735                }
Note: See TracChangeset for help on using the changeset viewer.