Changeset 86faff in git


Ignore:
Timestamp:
Nov 5, 2012, 3:32:16 PM (10 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
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
Location:
factory
Files:
2 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          }
  • 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.