Changeset 31d614 in git for Singular


Ignore:
Timestamp:
Mar 15, 2022, 4:37:20 PM (2 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
c1d1d924a0316c8dd9d96b185d6269552e5dcac3
Parents:
b8cd6e55df305b9b3acc9333479391768183129631f6493f817b702a6f55e8cdcdc8d11d7231b65a
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2022-03-15 16:37:20+01:00
git-committer:
GitHub <noreply@github.com>2022-03-15 16:37:20+01:00
Message:
Merge pull request #1134 from slap/integral-basis

Bugs fixed in puiseuxexpansions.lib
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/puiseuxexpansions.lib

    rb8cd6e r31d614  
    368368  int stop;
    369369  int newMaxDeg;
    370   list l = newtonpoly2(f);
    371 
    372   //list l = newtonpoly(f);
    373 
    374   //if((l[1][1] == 0) && (l[1][2] == 0))
    375   //{
    376   //  "ERROR: The polynomial must pass through the origin.";
    377   //  list cs = list();
    378   //} else
    379   //{
    380370
    381371  poly @c;
     
    394384  int cod = 0;
    395385  int mi;
     386
     387  // Case of Puiseux expansions with finite number of terms
     388  list dd = Integralbasis::divideBy(f, var(2));
     389  if(dd[2]>0)
     390  {
     391    for(i = 1; i <= dd[2]; i++)
     392    {
     393      cs[size(cs) + 1] = list(0, 1);
     394      cs[size(cs)][6] = list(cod);
     395      cod++;
     396    }
     397    f = dd[1];
     398  }
     399
     400
     401  list l = newtonpoly2(f);
     402 
     403  //list l = newtonpoly(f);
     404 
     405  //if((l[1][1] == 0) && (l[1][2] == 0))
     406  //{
     407  //  "ERROR: The polynomial must pass through the origin.";
     408  //  list cs = list();
     409  //} else
     410  //{
     411
    396412
    397413  //for(i = 1; i<size(l); i++)
     
    922938  // We compute the Puiseux expansions in this new ring
    923939  poly f = imap(R_PP, PP_numer);
    924   list fFacs = factorize(f);
    925   fFacs = Integralbasis::sortFactors(fFacs);
    926940  list p;
    927   list pTemp;
    928   for(i = 1; i <= size(fFacs[1]); i++)
    929   {
    930     if((fFacs[1][i] != 1) and (deg(fFacs[1][i], intvec(0,1)) > 0))
    931     {
    932       p = p + puiseuxMain(fFacs[1][i], maxDeg, 0, 0, 1);
    933     }
    934   }
     941
     942  // NOT WORKING - WE NEED TO CONSIDER ALSO THE MULTIPLICITIES
     943  // If we develop to a fix degree we can split the computations.
     944  // If we want to compute the singular parts then we cannot split.
     945  //if(maxDeg != -1)
     946  //{
     947  //  // We compute the Puiseux expansions in this new ring
     948  //  list fFacs = factorize(f);
     949  //  fFacs = Integralbasis::sortFactors(fFacs);
     950  //
     951  //  for(i = 1; i <= size(fFacs[1]); i++)
     952  //  {
     953  //    if((fFacs[1][i] != 1) and (deg(fFacs[1][i], intvec(0,1)) > 0))
     954  //    {
     955  //      p = p + puiseuxMain(fFacs[1][i], maxDeg, 0, 0, 1);
     956  //    }
     957  //  }
     958  //} else
     959  //{
     960  //  p = puiseuxMain(f, maxDeg, 0, 0, 1);
     961  //}
     962
     963  p = puiseuxMain(f, maxDeg, 0, 0, 1);
    935964
    936965  // We create a list of type Puiseux with one element for each Puiseux
Note: See TracChangeset for help on using the changeset viewer.