Changeset 38ffb7 in git for factory/facFqFactorize.cc


Ignore:
Timestamp:
Sep 2, 2011, 11:41:32 AM (13 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
96f9fdfab406c4f1b69b407c26a25d199352b8c5
Parents:
0349c206d67778742e0d31e4173c6f30b493a2a8
Message:
code clean up in facFqBivar.cc, facFqFactorize.cc, facFactorize.cc


git-svn-id: file:///usr/local/Singular/svn/trunk@14378 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqFactorize.cc

    r0349c20 r38ffb7  
    11711171  CFList result;
    11721172
     1173  CanonicalForm tmp;
    11731174  for (CFListIterator i= factors; i.hasItem(); i++)
    11741175  {
    1175     CanonicalForm tmp= i.getItem();
     1176    tmp= i.getItem();
    11761177    tmp= mulMod (tmp, LCBuf, M);
    11771178    tmp= tmp/content (tmp, 1);
     
    11971198  int n= 1;
    11981199  int m;
    1199   for (CFFListIterator i= factors1; (i.hasItem() && n < k); i++, n++)
     1200  CFFListIterator j;
     1201  for (CFFListIterator i= factors1; (n < k && i.hasItem()); i++, n++)
    12001202  {
    12011203    m= 1;
    1202     for (CFFListIterator j= factors2; (j.hasItem() && m < l); j++, m++)
    1203     {
    1204       CanonicalForm g= gcd (i.getItem().factor(), j.getItem().factor());
     1204    for (j= factors2; (m < l && j.hasItem()); j++, m++)
     1205    {
     1206      g= gcd (i.getItem().factor(), j.getItem().factor());
    12051207      if (degree (g) > 0)
    12061208      {
     
    12531255  }
    12541256
     1257  Variable v;
     1258  CFListIterator iter1;
     1259  CanonicalForm tmp, g;
    12551260  for (int i= 0; i < length; i++)
    12561261  {
    12571262    if (differentSecondVarFactors[i].isEmpty())
    12581263      continue;
    1259     CFListIterator iter1= l;
     1264    iter1= l;
    12601265    iter1++;
    12611266
    1262     Variable v= Variable (i + 3);
     1267    v= Variable (i + 3);
    12631268    for (CFListIterator iter2= differentSecondVarFactors[i]; iter2.hasItem();
    12641269         iter2++, iter1++)
     
    12661271      if (degree (iter2.getItem(),v) == degree (iter1.getItem(),v))
    12671272        continue;
    1268       CanonicalForm tmp= iter1.getItem();
     1273      tmp= iter1.getItem();
    12691274      for (int j= tmp.level(); j > 1; j--)
    12701275      {
     
    12731278        tmp= tmp (0, j);
    12741279      }
    1275       CanonicalForm g= gcd (iter2.getItem(), content);
     1280      g= gcd (iter2.getItem(), content);
    12761281      if (degree (g) > 0)
    12771282      {
     
    13061311             CFFList*& bufSqrfFactors, CFList& evalSqrfPartF)
    13071312{
     1313  CanonicalForm tmp;
     1314  CFListIterator j;
    13081315  for (CFListIterator i= uniFactors; i.hasItem(); i++)
    13091316  {
    1310     CanonicalForm tmp= i.getItem();
     1317    tmp= i.getItem();
    13111318    if (i.hasItem())
    13121319      i++;
    13131320    else
    13141321      break;
    1315     for (CFListIterator j= i; j.hasItem(); j++)
     1322    for (j= i; j.hasItem(); j++)
    13161323    {
    13171324      if (tmp == j.getItem())
     
    13381345  int k= 0;
    13391346  factors= uniFactors;
     1347  CFFListIterator iter;
    13401348  for (CFListIterator i= factors; i.hasItem(); i++, k++)
    13411349  {
    1342     CanonicalForm tmp= 1;
     1350    tmp= 1;
    13431351    sqrfFactors= squarefreeFactorization (i.getItem(), alpha);
    13441352
    1345     for (CFFListIterator j= sqrfFactors; j.hasItem(); j++)
    1346     {
    1347       tmp2.append (j.getItem().factor());
    1348       tmp *= j.getItem().factor();
     1353    for (iter= sqrfFactors; iter.hasItem(); iter++)
     1354    {
     1355      tmp2.append (iter.getItem().factor());
     1356      tmp *= iter.getItem().factor();
    13491357    }
    13501358    i.getItem()= tmp/Lc(tmp);
     
    13541362  for (int i= 0; i < factors.length() - 1; i++)
    13551363  {
    1356     for (int k= i + 1; k < factors.length(); k++)
     1364    for (k= i + 1; k < factors.length(); k++)
    13571365    {
    13581366      gcdFreeBasis (bufSqrfFactors [i], bufSqrfFactors[k]);
     
    13651373    if (i == 0)
    13661374    {
    1367       for (CFFListIterator k= bufSqrfFactors [i]; k.hasItem(); k++)
    1368       {
    1369         k.getItem()= CFFactor (k.getItem().factor()/Lc (k.getItem().factor()),
    1370                                k.getItem().exp());
    1371         factors.append (k.getItem().factor());
     1375      for (iter= bufSqrfFactors [i]; iter.hasItem(); iter++)
     1376      {
     1377        iter.getItem()= CFFactor (iter.getItem().factor()/
     1378                                  Lc (iter.getItem().factor()),
     1379                                  iter.getItem().exp());
     1380        factors.append (iter.getItem().factor());
    13721381      }
    13731382    }
    13741383    else
    13751384    {
    1376       for (CFFListIterator k= bufSqrfFactors [i]; k.hasItem(); k++)
    1377       {
    1378         k.getItem()= CFFactor (k.getItem().factor()/Lc (k.getItem().factor()),
    1379                                k.getItem().exp());
    1380         if (!find (factors, k.getItem().factor()))
    1381           factors.append (k.getItem().factor());
     1385      for (iter= bufSqrfFactors [i]; iter.hasItem(); iter++)
     1386      {
     1387        iter.getItem()= CFFactor (iter.getItem().factor()/
     1388                                  Lc (iter.getItem().factor()),
     1389                                  iter.getItem().exp());
     1390        if (!find (factors, iter.getItem().factor()))
     1391          factors.append (iter.getItem().factor());
    13821392      }
    13831393    }
     
    13851395
    13861396  test= prod (factors);
    1387   CanonicalForm tmp= evalSqrfPartF.getFirst() (0,2);
     1397  tmp= evalSqrfPartF.getFirst() (0,2);
    13881398  if (test/Lc (test) != tmp/Lc (tmp))
    13891399    return 0;
     
    14301440    else
    14311441    {
     1442      CFListIterator j;
    14321443      for (int i= 0; i < length; i++)
    14331444      {
    1434         for (CFListIterator j= differentSecondVarLCs[i]; j.hasItem(); j++)
     1445        for (j= differentSecondVarLCs[i]; j.hasItem(); j++)
    14351446        {
    14361447          if (j.getItem().level() == LCFLevel)
     
    14681479  CFFList * bufSqrfFactors= new CFFList [factors.length()];
    14691480  CFList evalSqrfPartF;
    1470   CanonicalForm bufContent;
    14711481  CFList bufFactors;
    14721482  int pass= testFactors (F, factors, alpha, sqrfPartF,
     
    14891499      }
    14901500    }
     1501    CFListIterator iter;
     1502    CFList bufBufFactors;
     1503    CanonicalForm bufF;
    14911504    for (int i= 0; i < length; i++)
    14921505    {
     
    14941507      {
    14951508        bool allConstant= true;
    1496         for (CFListIterator iter= differentSecondVarLCs[i]; iter.hasItem();
    1497              iter++)
     1509        for (iter= differentSecondVarLCs[i]; iter.hasItem(); iter++)
    14981510        {
    14991511          if (!iter.getItem().inCoeffDomain())
     
    15071519
    15081520        bufFactors= differentSecondVarLCs [i];
    1509         for (CFListIterator iter= bufFactors; iter.hasItem(); iter++)
     1521        for (iter= bufFactors; iter.hasItem(); iter++)
    15101522          iter.getItem()= swapvar (iter.getItem(), x, y);
    1511         CanonicalForm bufF= F;
     1523        bufF= F;
    15121524        z= Variable (y.level() - lev);
    15131525        bufF= swapvar (bufF, x, z);
    1514         CFList bufBufFactors= bufFactors;
     1526        bufBufFactors= bufFactors;
    15151527        pass= testFactors (bufF, bufBufFactors, alpha, sqrfPartF, bufFactors,
    15161528                           bufSqrfFactors, evalSqrfPartF);
     
    15201532          F= bufF;
    15211533          CFList l= factors;
    1522           for (CFListIterator iter= l; iter.hasItem(); iter++)
     1534          for (iter= l; iter.hasItem(); iter++)
    15231535            iter.getItem()= swapvar (iter.getItem(), x, y);
    15241536          differentSecondVarLCs [i]= l;
     
    15731585
    15741586  CFList result;
     1587  CFFListIterator k;
    15751588  for (int i= 0; i < LCFFactors.length(); i++)
    15761589  {
    15771590    CanonicalForm tmp= 1;
    1578     for (CFFListIterator k= bufSqrfFactors[i]; k.hasItem(); k++)
     1591    for (k= bufSqrfFactors[i]; k.hasItem(); k++)
    15791592    {
    15801593      int pos= findItem (bufFactors, k.getItem().factor());
     
    16341647                                  const CanonicalForm& A)
    16351648{
     1649  CanonicalForm tmp;
     1650  CFList tmp2;
     1651  CFListIterator iter;
    16361652  for (int i= A.level(); i > 2; i--)
    16371653  {
    1638     CanonicalForm tmp= A;
    1639     CFList tmp2= CFList();
    1640     CFListIterator iter= evaluation;
     1654    tmp= A;
     1655    tmp2= CFList();
     1656    iter= evaluation;
    16411657    bool preserveDegree= true;
    16421658    for (int j= A.level(); j > 1; j--, iter++)
     
    17481764  minFactorsLength= 0;
    17491765  irred= false;
     1766  CFList factors;
     1767  Variable v;
    17501768  for (int j= 0; j < A.level() - 2; j++)
    17511769  {
    17521770    if (!Aeval[j].isEmpty())
    17531771    {
    1754       Variable v= Variable (Aeval[j].getFirst().level());
    1755 
    1756       CFList factors;
     1772      v= Variable (Aeval[j].getFirst().level());
    17571773      if (CFFactory::gettype() == GaloisFieldDomain)
    17581774        factors= GFBiSqrfFactorize (Aeval[j].getFirst());
     
    17831799                      )
    17841800{
     1801  CanonicalForm evalPoint;
     1802  int i;
     1803  CFListIterator iter, iter2;
     1804  Variable v;
     1805  CFList l, LCs;
     1806  CanonicalForm buf;
    17851807  for (int j= 0; j < A.level() - 2; j++)
    17861808  {
    17871809    if (!Aeval[j].isEmpty())
    17881810    {
    1789       int i= A.level();
    1790       CanonicalForm evalPoint;
    1791       for (CFListIterator iter= evaluation; iter.hasItem(); iter++, i--)
     1811      i= A.level();
     1812      for (iter= evaluation; iter.hasItem(); iter++, i--)
    17921813      {
    17931814        if (i == Aeval[j].getFirst().level())
     
    17981819      }
    17991820
    1800       Variable v= Variable (i);
     1821      v= Variable (i);
    18011822      if (Aeval[j].length() > uniFactors.length())
    18021823        Aeval[j]= recombination (Aeval[j], uniFactors, 1,
     
    18041825                                 evalPoint, v);
    18051826
    1806       CFList l;
    1807       CanonicalForm buf;
    1808       for (CFListIterator iter1= uniFactors; iter1.hasItem(); iter1++)
    1809       {
    1810         for (CFListIterator iter2= Aeval[j]; iter2.hasItem(); iter2++)
     1827      l= CFList();
     1828      for (iter= uniFactors; iter.hasItem(); iter++)
     1829      {
     1830        for (iter2= Aeval[j]; iter2.hasItem(); iter2++)
    18111831        {
    18121832          buf= mod (iter2.getItem(), v - evalPoint);
    18131833          buf /= Lc (buf);
    1814           if (iter1.getItem() == buf)
     1834          if (iter.getItem() == buf)
    18151835          {
    18161836            l.append (iter2.getItem());
     
    18211841      Aeval [j]= l;
    18221842
    1823       CFList LCs;
    1824       for (CFListIterator iter= Aeval[j]; iter.hasItem(); iter++)
     1843      LCs= CFList();
     1844      for (iter= Aeval[j]; iter.hasItem(); iter++)
    18251845        LCs.append (LC (iter.getItem() (v + evalPoint, v), 1));
    18261846      normalize (LCs);
     
    18491869                      int minFactorsLength)
    18501870{
     1871  CFListIterator iter;
     1872  CanonicalForm evalPoint;
     1873  int i;
     1874  Variable v;
     1875  Variable y= Variable (2);
     1876  CFList list;
    18511877  for (int j= 0; j < A.level() - 2; j++)
    18521878  {
    18531879    if (Aeval[j].length() == minFactorsLength)
    18541880    {
    1855       int i= A.level();
    1856       CanonicalForm evalPoint;
    1857       for (CFListIterator iter= evaluation; iter.hasItem(); iter++, i--)
     1881      i= A.level();
     1882
     1883      for (iter= evaluation; iter.hasItem(); iter++, i--)
    18581884      {
    18591885        if (i == Aeval[j].getFirst().level())
     
    18641890      }
    18651891
    1866       Variable v= Variable (i);
    1867       CFList list= buildUniFactors (Aeval[j], evalPoint, v);
    1868 
    1869       Variable y= Variable (2);
     1892      v= Variable (i);
     1893      list= buildUniFactors (Aeval[j], evalPoint, v);
     1894
    18701895      biFactors= recombination (biFactors, list, 1,
    18711896                                biFactors.length() - list.length() + 1,
     
    18811906  CFList l= leadingCoeffs;
    18821907  LCs [n-3]= l;
     1908  CFListIterator j;
    18831909  for (int i= n - 1; i > 2; i--)
    18841910  {
    1885     for (CFListIterator j= l; j.hasItem(); j++)
     1911    for (j= l; j.hasItem(); j++)
    18861912      j.getItem()= j.getItem() (0, i + 1);
    18871913    LCs [i - 3]= l;
     
    18971923  {
    18981924    ii= normalizeFactor;
    1899     for (CFListIterator j= LCs [i]; j.hasItem(); j++, ii++)
     1925    for (j= LCs [i]; j.hasItem(); j++, ii++)
    19001926      j.getItem() *= ii.getItem();
    19011927  }
Note: See TracChangeset for help on using the changeset viewer.