Changeset 2fbb9e6 in git for factory


Ignore:
Timestamp:
Mar 6, 2012, 10:35:56 AM (12 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
4e6d2aac480d2946ef572d24bd5dd72906cf1e57
Parents:
51aa1628bc6d045fbc3a9adf018acd4371a09596
git-author:
Martin Lee <martinlee84@web.de>2012-03-06 10:35:56+01:00
git-committer:
Martin Lee <martinlee84@web.de>2012-04-04 14:42:26+02:00
Message:
chg: make minimal polynomial an element of Z[t]
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facBivar.h

    r51aa162 r2fbb9e6  
    8383  vec_ZZ S;
    8484  F= compress (F, M, S);
    85   CFList result= biFactorize (F, v);
    86   for (CFListIterator i= result; i.hasItem(); i++)
    87     i.getItem()= N (decompress (i.getItem(), M, S));
     85  Variable tmp1, tmp2;
     86  CanonicalForm mipoTmp1;
     87  bool substAlgVar= false;
     88  if (v.level() != 1)
     89  {
     90    mipoTmp1= getMipo (v);
     91    if (!bCommonDen (getMipo (v)).isOne())
     92    {
     93      tmp2= v;
     94      mipoTmp1 *= bCommonDen (mipoTmp1);
     95      mipoTmp1= replacevar (mipoTmp1, v, Variable (1));
     96      tmp1= rootOf (mipoTmp1);
     97      F= replacevar (F, tmp2, tmp1);
     98      substAlgVar= true;
     99    }
     100    else
     101      tmp1= v;
     102  }
     103  else
     104    tmp1= v;
     105  CFList result= biFactorize (F, tmp1);
     106  if (substAlgVar)
     107  {
     108    for (CFListIterator i= result; i.hasItem(); i++)
     109      i.getItem()= N (decompress (replacevar (i.getItem(), tmp1, tmp2), M, S));
     110  }
     111  else
     112  {
     113    for (CFListIterator i= result; i.hasItem(); i++)
     114      i.getItem()= N (decompress (i.getItem(), M, S));
     115  }
    88116  for (CFFListIterator i= contentXFactors; i.hasItem(); i++)
    89117    result.append (N(i.getItem().factor()));
     
    188216  vec_ZZ S;
    189217  F= compress (F, M, S);
     218  Variable tmp1, tmp2;
     219  CanonicalForm mipoTmp1;
     220  bool substAlgVar= false;
     221  if (v.level() != 1)
     222  {
     223    mipoTmp1= getMipo (v);
     224    if (!bCommonDen (getMipo (v)).isOne())
     225    {
     226      tmp2= v;
     227      mipoTmp1 *= bCommonDen (mipoTmp1);
     228      mipoTmp1= replacevar (mipoTmp1, v, Variable (1));
     229      tmp1= rootOf (mipoTmp1);
     230      F= replacevar (F, tmp2, tmp1);
     231      substAlgVar= true;
     232    }
     233    else
     234      tmp1= v;
     235  }
     236  else
     237    tmp1= v;
    190238  CFFList sqrfFactors= sqrFree (F);
    191239  for (CFFListIterator i= sqrfFactors; i.hasItem(); i++)
    192240  {
    193     CFList tmp= ratBiSqrfFactorize (i.getItem().factor(), v);
    194     for (CFListIterator j= tmp; j.hasItem(); j++)
    195     {
    196       if (j.getItem().inCoeffDomain()) continue;
    197       result.append (CFFactor (N (decompress (j.getItem(), M, S)), i.getItem().exp()));
     241    CFList tmp= ratBiSqrfFactorize (i.getItem().factor(), tmp1);
     242    if (substAlgVar)
     243    {
     244      for (CFListIterator j= tmp; j.hasItem(); j++)
     245      {
     246        if (j.getItem().inCoeffDomain()) continue;
     247        result.append (CFFactor (N (decompress (replacevar (j.getItem(),
     248                                 tmp1, tmp2), M, S)), i.getItem().exp()));
     249      }
     250    }
     251    else
     252    {
     253      for (CFListIterator j= tmp; j.hasItem(); j++)
     254      {
     255        if (j.getItem().inCoeffDomain()) continue;
     256        result.append (CFFactor (N (decompress (j.getItem(), M, S)),
     257                                 i.getItem().exp()));
     258      }
    198259    }
    199260  }
Note: See TracChangeset for help on using the changeset viewer.