Changeset 38c0dca in git for Singular/LIB/gaussman.lib


Ignore:
Timestamp:
Feb 12, 2002, 6:39:27 PM (22 years ago)
Author:
Mathias Schulze <mschulze@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
37c112469f189ef5a3de5e526fcf3d8aaac5210a
Parents:
6d07e39974898a3c343d0298c4eb25a179334ab7
Message:
*mschulze: gmsnf moved to kernel


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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/gaussman.lib

    r6d07e3 r38c0dca  
    11///////////////////////////////////////////////////////////////////////////////
    2 version="$Id: gaussman.lib,v 1.66 2002-02-12 14:35:24 mschulze Exp $";
     2version="$Id: gaussman.lib,v 1.67 2002-02-12 17:39:27 mschulze Exp $";
    33category="Singularities";
    44
     
    1313PROCEDURES:
    1414 gmsring(t,s);              Gauss-Manin connection of t with variable s
    15  gmsnf(p,K[,Kmax]);         Gauss-Manin connection normal form of p
    16  gmscoeffs(p,K[,Kmax]);     Gauss-Manin connection basis representation of p
     15 gmsnf(p,K);                Gauss-Manin connection normal form of p
     16 gmscoeffs(p,K);            Gauss-Manin connection basis representation of p
    1717 monodromy(t);              Jordan data of monodromy of t
    1818 spectrum(t);               singularity spectrum of t
     
    211211///////////////////////////////////////////////////////////////////////////////
    212212
    213 proc gmsnf(ideal p,int K,list #)
    214 "USAGE:    gmsnf(p,K[,Kmax]); poly p, int K, int Kmax
    215 ASSUME:   basering returned by gmsring; K<=Kmax
     213proc gmsnf(ideal p,int K)
     214"USAGE:    gmsnf(p,K); poly p, int K
     215ASSUME:   basering returned by gmsring
    216216RETURN:
    217217@format
    218218list nf;
    219219  ideal nf[1];  projection of p to gmsbasis mod s^(K+1)
    220   ideal nf[2];  p=nf[1]+nf[2] mod s^(Kmax+1)
     220  ideal nf[2];  p=nf[1]+nf[2]
    221221@end format
     222NOTE:     by setting p=nf[2] the computation can be continued
    222223KEYWORDS: singularities; Gauss-Manin connection; Brieskorn lattice
    223224EXAMPLE:  example gmsnf; shows examples
    224225"
    225226{
    226   int Kmax=-1;
    227   if(size(#)>0)
    228   {
    229     if(typeof(#[1])=="int")
    230     {
    231       Kmax=#[1];
    232       if(K>Kmax)
    233       {
    234         Kmax=K;
    235       }
    236     }
    237   }
    238 
    239   intvec v=1;
    240   v[nvars(basering)]=0;
    241 
    242   int k;
    243   if(Kmax>=0)
    244   {
    245     p=jet(jet(p,K,v),(Kmax+1)*deg(var(1))-2*gmsmaxdeg);
    246   }
    247 
    248   ideal r,q;
    249   r[ncols(p)]=0;
    250   q[ncols(p)]=0;
    251 
    252   poly s;
    253   int i,j;
    254   for(k=ncols(p);k>=1;k--)
    255   {
    256     while(p[k]!=0&&deg(lead(p[k]),v)<=K)
    257     {
    258       i=1;
    259       s=lead(p[k])/lead(gmsstd[i]);
    260       while(i<ncols(gmsstd)&&s==0)
    261       {
    262         i++;
    263         s=lead(p[k])/lead(gmsstd[i]);
    264       }
    265       if(s!=0)
    266       {
    267         p[k]=p[k]-s*gmsstd[i];
    268         for(j=1;j<=nrows(gmsmatrix);j++)
    269         {
    270           if(Kmax>=0)
    271           {
    272             p[k]=p[k]+
    273               jet(jet(diff(s*gmsmatrix[j,i],var(j+1))*var(1),Kmax,v),
    274                 (Kmax+1)*deg(var(1))-2*gmsmaxdeg);
    275           }
    276           else
    277           {
    278             p[k]=p[k]+diff(s*gmsmatrix[j,i],var(j+1))*var(1);
    279           }
    280         }
    281       }
    282       else
    283       {
    284         r[k]=r[k]+lead(p[k]);
    285         p[k]=p[k]-lead(p[k]);
    286       }
    287       while(deg(lead(p[k]))>(K+1)*deg(var(1))-2*gmsmaxdeg&&
    288         deg(lead(p[k]),v)<=K)
    289       {
    290         q[k]=q[k]+lead(p[k]);
    291         p[k]=p[k]-lead(p[k]);
    292       }
    293     }
    294     q[k]=q[k]+p[k];
    295   }
    296 
    297   return(list(r,q));
     227  return(system("gmsnf",p,gmsstd,gmsmatrix,(K+1)*deg(var(1))-2*gmsmaxdeg,K));
    298228}
    299229example
     
    312242///////////////////////////////////////////////////////////////////////////////
    313243
    314 proc gmscoeffs(ideal p,int K,list #)
    315 "USAGE:    gmscoeffs(p,K[,Kmax]); poly p, int K, int Kmax
    316 ASSUME:   basering constructed by gmsring, K<=Kmax
     244proc gmscoeffs(ideal p,int K)
     245"USAGE:    gmscoeffs(p,K); poly p, int K
     246ASSUME:   basering constructed by gmsring
    317247RETURN:
    318248@format
    319249list l;
    320250  matrix l[1];  gmsbasis representation of p mod s^(K+1)
    321   ideal l[2];  p=matrix(gmsbasis)*l[1]+l[2] mod s^(Kmax+1)
     251  ideal l[2];  p=matrix(gmsbasis)*l[1]+l[2]
    322252@end format
    323 NOTE:     by setting p=l[2] the computation can be continued up to degree
    324           at most Kmax, by default Kmax=infinity
     253NOTE:     by setting p=l[2] the computation can be continued
    325254KEYWORDS: singularities; Gauss-Manin connection; Brieskorn lattice
    326255EXAMPLE:  example gmscoeffs; shows examples
    327256"
    328257{
    329   list l=gmsnf(p,K,#);
     258  list l=gmsnf(p,K);
    330259  ideal r,q=l[1..2];
    331260  poly v=1;
     
    411340    k++;
    412341    dbprint(printlevel-voice+2,"// k="+string(k));
    413     l=gmscoeffs(r,k,mu+K0);
     342    l=gmscoeffs(r,k);
    414343    C,r=l[1..2];
    415344    A0=A0+C;
     
    436365  dbprint(printlevel-voice+2,"// compute matrix A of t");
    437366  dbprint(printlevel-voice+2,"// k="+string(K+k0+1));
    438   list l=gmscoeffs(r,K+k0+1,K0+k0+1);
     367  list l=gmscoeffs(r,K+k0+1);
    439368  matrix C;
    440369  C,r=l[1..2];
Note: See TracChangeset for help on using the changeset viewer.