Changeset 86faff in git for factory/facFqFactorize.cc


Ignore:
Timestamp:
Nov 5, 2012, 3:32:16 PM (11 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
6dfc398e71ea196ccb6f9d8b8eb795ebf96f523c
Parents:
6e88340150f9c8853246d5e107fab8042207d29e
git-author:
Martin Lee <martinlee84@web.de>2012-11-05 15:32:16+01:00
git-committer:
Martin Lee <martinlee84@web.de>2012-11-16 13:19:19+01:00
Message:
chg: more checks in heurstic to distribute leading coefficients
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqFactorize.cc

    r6e8834 r86faff  
    27852785                !isOnlyLeadingCoeff(iter2.getItem())) //content divides LCmultiplier completely and factor consists of more terms than just the leading coeff
    27862786            {
    2787               int index2= 1;
    2788               for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1];
    2789                    iter3.hasItem(); iter3++, index2++)
     2787              Variable xx= Variable (2);
     2788              CanonicalForm vars;
     2789              vars= power (xx, degree (LC (getItem(oldBiFactors, index),1),
     2790                                        xx));
     2791              for (int i= 0; i < lengthAeval2; i++)
    27902792              {
    2791                 if (index2 == index)
     2793                if (oldAeval[i].isEmpty())
     2794                  continue;
     2795                xx= oldAeval[i].getFirst().mvar();
     2796                vars *= power (xx, degree (LC (getItem(oldAeval[i], index),1),
     2797                                           xx));
     2798              }
     2799              if (vars.level() <= 2)
     2800              {
     2801                int index2= 1;
     2802                for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1];
     2803                     iter3.hasItem(); iter3++, index2++)
    27922804                {
    2793                   iter3.getItem() /= LCmultiplier;
    2794                   break;
     2805                  if (index2 == index)
     2806                  {
     2807                    iter3.getItem() /= LCmultiplier;
     2808                    break;
     2809                  }
    27952810                }
     2811                A /= LCmultiplier;
     2812                foundMultiplier= true;
     2813                iter.getItem()= 1;
    27962814              }
    2797               A /= LCmultiplier;
    2798               foundMultiplier= true;
    2799               iter.getItem()= 1;
    28002815            }
    28012816          }
Note: See TracChangeset for help on using the changeset viewer.