Changeset 86faff in git for factory/facFactorize.cc


Ignore:
Timestamp:
Nov 5, 2012, 3:32:16 PM (11 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '00e2e9c41af3fde1273eb3633f4c0c7c3db2579d')
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/facFactorize.cc

    r6e8834 r86faff  
    622622                !isOnlyLeadingCoeff(iter2.getItem())) //content divides LCmultiplier completely and factor consists of more terms than just the leading coeff
    623623            {
    624               int index2= 1;
    625               for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1];
    626                    iter3.hasItem(); iter3++, index2++)
     624              Variable xx= Variable (2);
     625              CanonicalForm vars;
     626              vars= power (xx, degree (LC (getItem(oldBiFactors, index),1),
     627                                        xx));
     628              for (int i= 0; i < lengthAeval2; i++)
    627629              {
    628                 if (index2 == index)
     630                if (oldAeval[i].isEmpty())
     631                  continue;
     632                xx= oldAeval[i].getFirst().mvar();
     633                vars *= power (xx, degree (LC (getItem(oldAeval[i], index),1),
     634                                           xx));
     635              }
     636              if (vars.level() <= 2)
     637              {
     638                int index2= 1;
     639                for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1];
     640                     iter3.hasItem(); iter3++, index2++)
    629641                {
    630                   iter3.getItem() /= LCmultiplier;
    631                   break;
     642                  if (index2 == index)
     643                  {
     644                    iter3.getItem() /= LCmultiplier;
     645                    break;
     646                  }
    632647                }
     648                A /= LCmultiplier;
     649                foundMultiplier= true;
     650                iter.getItem()= 1;
    633651              }
    634               A /= LCmultiplier;
    635               foundMultiplier= true;
    636               iter.getItem()= 1;
    637652            }
    638653          }
Note: See TracChangeset for help on using the changeset viewer.