Changeset c5230d1 in git


Ignore:
Timestamp:
Aug 29, 2012, 11:14:00 AM (10 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'ad2543eab51733612ba7d118afc77edca719600e')
Children:
e0047d770810456c8f4c046498d6f0d039013d14
Parents:
83e5de0ee327f62a667ed0f87e050ea331b13d39
git-author:
Martin Lee <martinlee84@web.de>2012-08-29 11:14:00+02:00
git-committer:
Martin Lee <martinlee84@web.de>2012-09-05 15:00:01+02:00
Message:
chg: do more bivariate factorization
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFactorize.cc

    r83e5de rc5230d1  
    126126  CFList factors;
    127127  CanonicalForm LCA= LC (A,1);
    128   if (!LCA.inCoeffDomain())
    129   {
    130     for (int j= 0; j < A.level() - 2; j++)
    131     {
    132       if (!Aeval[j].isEmpty() && (degree (LCA, j+3) > 0))
    133       {
    134         v= Variable (Aeval[j].getFirst().level());
    135 
    136         factors= ratBiSqrfFactorize (Aeval[j].getFirst(), w);
    137 
    138         if (factors.getFirst().inCoeffDomain())
    139           factors.removeFirst();
    140 
    141         if (minFactorsLength == 0)
    142           minFactorsLength= factors.length();
    143         else
    144           minFactorsLength= tmin (minFactorsLength, factors.length());
    145 
    146         if (factors.length() == 1)
    147         {
    148           irred= true;
    149           return;
    150         }
    151         sortList (factors, x);
    152         Aeval [j]= factors;
    153       }
    154       else if (!Aeval[j].isEmpty())
    155       {
    156         Aeval[j]=CFList();
    157       }
    158     }
    159   }
    160   else
    161   {
    162     for (int j= 0; j < A.level() - 2; j++)
    163       Aeval[j]= CFList();
     128  for (int j= 0; j < A.level() - 2; j++)
     129  {
     130    if (!Aeval[j].isEmpty())
     131    {
     132      v= Variable (Aeval[j].getFirst().level());
     133
     134      factors= ratBiSqrfFactorize (Aeval[j].getFirst(), w);
     135      if (factors.getFirst().inCoeffDomain())
     136        factors.removeFirst();
     137
     138      if (minFactorsLength == 0)
     139        minFactorsLength= factors.length();
     140      else
     141        minFactorsLength= tmin (minFactorsLength, factors.length());
     142
     143      if (factors.length() == 1)
     144      {
     145        irred= true;
     146        return;
     147      }
     148      sortList (factors, x);
     149      Aeval [j]= factors;
     150    }
     151    else if (!Aeval[j].isEmpty())
     152      Aeval[j]=CFList();
    164153  }
    165154}
     
    728717    evaluationWRTDifferentSecondVars (bufAeval2, bufEvaluation, A);
    729718
    730     for (int j= 0; j < A.level() - 1; j++)
     719    for (int j= 0; j < lengthAeval2; j++)
    731720    {
    732721      if (!bufAeval2[j].isEmpty())
     
    807796    refineBiFactors (A, biFactors, Aeval2, evaluation, minFactorsLength);
    808797
    809   if (differentSecondVar == lengthAeval2 && getNumVars(LC(A,1)) == A.level()-1)
     798  if (differentSecondVar == lengthAeval2)
    810799  {
    811800    bool zeroOccured= false;
Note: See TracChangeset for help on using the changeset viewer.