Changeset 409dbae in git for Singular/LIB/gaussman.lib


Ignore:
Timestamp:
Aug 13, 2001, 1:40:58 PM (22 years ago)
Author:
Mathias Schulze <mschulze@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
be1d412d2c7e4f64347b834e72628fc8d354858b
Parents:
891438c7813df48556c4efdb0148577dddef063b
Message:
*mschulze: bug fixed


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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/gaussman.lib

    r891438c r409dbae  
    11///////////////////////////////////////////////////////////////////////////////
    2 version="$Id: gaussman.lib,v 1.49 2001-08-09 08:39:54 mschulze Exp $";
     2version="$Id: gaussman.lib,v 1.50 2001-08-13 11:40:58 mschulze Exp $";
    33category="Singularities";
    44
     
    377377///////////////////////////////////////////////////////////////////////////////
    378378
    379 static proc maxorddif(matrix H)
    380 {
    381   int i,j,d;
    382   int d0,d1=-1,-1;
    383   for(i=nrows(H);i>=1;i--)
    384   {
    385     for(j=ncols(H);j>=1;j--)
    386     {
    387       d=ord(H[i,j]);
    388       if(d>=0)
    389       {
    390         if(d0<0||d<d0)
    391         {
    392           d0=d;
    393         }
    394         if(d1<0||d>d1)
    395         {
    396           d1=d;
    397         }
    398       }
    399     }
    400   }
    401   return(d1-d0);
    402 }
    403 ///////////////////////////////////////////////////////////////////////////////
    404 
    405379proc monodromy(poly t,list #)
    406 "USAGE:    monodromy(t[,opt]); poly t[, int opt]
     380"USAGE:    monodromy(t[,opt]); poly t, int opt
    407381ASSUME:   basering with characteristic 0 and local degree ordering,
    408382          t with isolated singularity at 0
    409383RETURN:
    410384@format
    411 if opt=0:
     385if opt<=0:
    412386list l:
    413387  ideal l[1]: exp(-2*pi*i*l[1]) are the eigenvalues of the monodromy
    414 if opt=1:
     388if opt>=1:
    415389list l: Jordan data jordan(M) of a monodromy matrix exp(-2*pi*i*M)
    416390default: opt=1
     
    438412  ideal r=gmspoly*gmsbasis;
    439413  list l;
    440   matrix U=freemodule(mu);
    441414  matrix A0[mu][mu],C;
    442415  module H,H1=freemodule(mu),freemodule(mu);
     
    448421    dbprint(printlevel-voice+2,"// k="+string(k));
    449422    dbprint(printlevel-voice+2,"// compute matrix A of t");
    450     if(opt==0)
     423    if(opt<=0)
    451424    {
    452425      l=gmscoeffs(r,k,mu);
     
    468441  dbprint(printlevel-voice+2,"// compute basis of saturation of H''");
    469442  H=std(H0);
    470   int d0=maxorddif(H)/deg(s);
     443  int d0=maxdeg1(H);
    471444  dbprint(printlevel-voice+2,"// k="+string(d0+1));
    472445  dbprint(printlevel-voice+2,"// compute matrix A of t");
    473   if(opt==0)
     446  if(opt<=0)
    474447  {
    475448    l=gmscoeffs(r,d0+1,d0+1);
     
    477450  else
    478451  {
    479     l=gmscoeffs(r,d0+1,d0+1+n);
     452    l=gmscoeffs(r,d0+1,d0+n+1);
    480453  }
    481454  C,r=l[1..2];
     
    492465  dbprint(printlevel-voice+2,"// m="+string(m));
    493466
    494   if(opt==0)
     467  if(opt<=0)
    495468  {
    496469    setring(R);
     
    503476  dbprint(printlevel-voice+2,"// d1="+string(d1));
    504477
     478  module U;
    505479  if(d1>0)
    506480  {
     
    625599
    626600proc sppairs(poly t,list #)
    627 "USAGE:    sppairs(t[,opt]); poly t[, int opt]
     601"USAGE:    sppairs(t[,opt]); poly t, int opt
    628602ASSUME:   basering with characteristic 0 and local degree ordering,
    629603          t with isolated singularity at 0
     
    663637  ideal r=gmspoly*gmsbasis;
    664638  list l;
    665   matrix U=freemodule(mu);
    666639  matrix A0[mu][mu],C;
    667640  module H0;
     
    673646    dbprint(printlevel-voice+2,"// k="+string(k));
    674647    dbprint(printlevel-voice+2,"// compute matrix A of t");
    675     l=gmscoeffs(r,k,mu+n);
     648    if(opt<=0)
     649    {
     650      l=gmscoeffs(r,k,mu);
     651    }
     652    else
     653    {
     654      l=gmscoeffs(r,k,mu+n);
     655    }
    676656    C,r=l[1..2];
    677657    A0=A0+C;
     
    686666  dbprint(printlevel-voice+2,"// compute basis of saturation of H''");
    687667  H=std(H0);
    688   int d0=maxorddif(H)/deg(s);
     668  int d0=maxdeg1(H);
    689669  dbprint(printlevel-voice+2,"// transform H'' to saturation of H''");
    690670  l=division(H,freemodule(mu)*s^k);
     
    693673  dbprint(printlevel-voice+2,"// k="+string(d0+1));
    694674  dbprint(printlevel-voice+2,"// compute matrix A of t");
    695   l=gmscoeffs(r,d0+1,d0+1+n);
     675  if(opt<=0)
     676  {
     677    l=gmscoeffs(r,d0+1,d0+1);
     678  }
     679  else
     680  {
     681    l=gmscoeffs(r,d0+1,d0+n+1);
     682  }
    696683  C,r=l[1..2];
    697684  A0=A0+C;
     
    701688
    702689  int i,j;
    703   matrix V;
     690  module U,V;
    704691  if(opt<=0)
    705692  {
     
    820807  }
    821808
    822   dbprint(printlevel-voice+2,"// transform to Jordan basis");
     809  dbprint(printlevel-voice+2,"// compute weight filtration basis");
    823810  intvec w0;
    824811  l=jordanbasis(A);
    825812  U,w0=l[1..2];
    826813  V=lift(U,freemodule(mu));
    827   A0=V*A*U;
    828 
    829   dbprint(printlevel-voice+2,"// compute weight filtration basis");
     814  A0=jet(V*A*U,0);
    830815  vector u;
    831816  i=1;
    832   while(i<ncols(A))
     817  while(i<ncols(A0))
    833818  {
    834819    j=i+1;
    835     while(j<ncols(A)&&A[i,i]==A[j,j])
     820    while(j<ncols(A0)&&A0[i,i]==A0[j,j])
    836821    {
    837822      if(w0[i]<w0[j])
     
    846831      j++;
    847832    }
    848     if(j==ncols(A)&&A[i,i]==A[j,j]&&w0[i]<w0[j])
     833    if(j==ncols(A0)&&A0[i,i]==A0[j,j]&&w0[i]<w0[j])
    849834    {
    850835      k=w0[i];
     
    926911  ideal r=gmspoly*gmsbasis;
    927912  list l;
    928   matrix U=freemodule(mu);
    929913  matrix A[mu][mu],C;
    930914  module H,H1=freemodule(mu),freemodule(mu);
     
    951935  dbprint(printlevel-voice+2,"// compute basis of saturation of H''");
    952936  H=std(H0);
    953   int d0=maxorddif(H)/deg(s);
     937  int d0=maxdeg1(H);
    954938  dbprint(printlevel-voice+2,"// k="+string(d0+N));
    955939  dbprint(printlevel-voice+2,"// compute matrix A of t");
     
    12021186  dbprint(printlevel-voice+2,"// compute multiplication in Jacobian algebra");
    12031187  list M;
    1204   matrix U=freemodule(ncols(m));
     1188  module U=freemodule(ncols(m));
    12051189  for(i=ncols(m);i>=1;i--)
    12061190  {
Note: See TracChangeset for help on using the changeset viewer.