Changeset 95c043 in git


Ignore:
Timestamp:
May 16, 2014, 9:58:03 PM (10 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
7b2d39f82b860ea7b9a1d2d8acc9d0035e965f1f
Parents:
89889e8f44c96b31ec50d021b6a513497cfbbfcc
git-author:
Martin Lee <martinlee84@web.de>2014-05-16 21:58:03+02:00
git-committer:
Martin Lee <martinlee84@web.de>2014-05-21 15:06:55+02:00
Message:
fix: bug in removeFactors
chg: improved normalize
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/cfCharSetsUtil.cc

    r89889e r95c043  
    709709    if (isRat)
    710710      On (SW_RATIONAL);
     711    if (lc(G) < 0)
     712      G= -G;
    711713    return G;
    712714  }
     
    934936    testlist.append (CanonicalForm (Variable (i)));
    935937
     938  // remove already removed factors
    936939  for (j= StoredFactors.FS1; j.hasItem(); j++)
    937940  {
    938941    while (fdivides (j.getItem(), r, quot))
    939942    {
    940       if (!quot.inCoeffDomain())
    941         r= quot;
    942       else
    943         break;
    944     }
    945   }
    946 
    947   // remove already removed factors
     943      r= quot;
     944    }
     945  }
     946
    948947  for (j= StoredFactors.FS2; j.hasItem(); j++)
    949948  {
    950949    divides= false;
    951     while (fdivides (j.getItem(), r, quot))
    952     {
    953       if (!quot.inCoeffDomain())
     950    if (j.getItem() != r)
     951    {
     952      while (fdivides (j.getItem(), r, quot))
    954953      {
    955954        divides= true;
    956955        r= quot;
    957956      }
    958       else
    959         break;
    960     }
    961     if (divides)
    962       removedFactors= Union (removedFactors, CFList (j.getItem()));
     957      if (divides)
     958        removedFactors= Union (removedFactors, CFList (j.getItem()));
     959    }
    963960  }
    964961  r= normalize (r);
     
    967964  for (j= testlist; j.hasItem() && !r.isOne(); j++)
    968965  {
    969     while (fdivides (j.getItem(), r, quot))
    970     {
    971       if (!quot.inCoeffDomain())
     966    divides= false;
     967    if (j.getItem() != r)
     968    {
     969      while (fdivides (j.getItem(), r, quot))
     970      {
     971        divides= true;
    972972        r= quot;
    973       else
    974         break;
    975       removedFactors= Union (removedFactors, CFList (j.getItem()));
    976     }
    977   }
     973      }
     974      if (divides)
     975        removedFactors= Union (removedFactors, CFList (j.getItem()));
     976     }
     977  }
     978  r= normalize (r);
    978979}
    979980
Note: See TracChangeset for help on using the changeset viewer.