Changeset 61dadae in git
 Timestamp:
 Dec 4, 2000, 2:48:43 PM (23 years ago)
 Branches:
 (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
 Children:
 b89cf5dc60a6d0fcab40ce5443e3cdb2001c8c7e
 Parents:
 5c8c19056d07b66b391e75ff3ed5f2a0fefb4faf
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

Singular/LIB/gaussman.lib
r5c8c19 r61dadae 1 1 /////////////////////////////////////////////////////////////////////////////// 2 2 3 version="$Id: gaussman.lib,v 1. 8 20001110 10:29:47mschulze Exp $";3 version="$Id: gaussman.lib,v 1.9 20001204 13:48:43 mschulze Exp $"; 4 4 info=" 5 5 LIBRARY: gaussman.lib GAUSSMANIN CONNECTION OF A SINGULARITY 6 6 7 AUTHOR: Mathias Schulze (mschulze@mathematik.unikl.de) 8 9 OVERVIEW: 10 A library to compute invariants related to the GaussManin connection 11 of an isolated hypersurface singularity 7 AUTHOR: Mathias Schulze, email: mschulze@mathematik.unikl.de 12 8 13 9 PROCEDURES: 14 monomat : monodromy matrix 15 monospec : spectrum of monodromy 16 vfilt : Vfiltration on H''/H' 17 singspec : singularity spectrum 18 vjacob : Vfiltration on Jacobian algebra 10 monomat monodromy matrix 11 monospec spectrum of monodromy 12 vfilt Vfiltration on H''/H' 13 singspec singularity spectrum 14 vjacob Vfiltration on Jacobian algebra 15 gamma Hertling's gamma invariant 16 gamma4 Hertling's gamma4 invariant 19 17 "; 20 18 … … 139 137 proc monomat(poly f,list #) 140 138 "USAGE: <matrix> M=monomat(<poly> f); 141 ASSUME: f defines an isolated hypersurface singularity142 139 RETURN: exp(2*pi*i*M) is a monodromy matrix 140 NOTE: f isolated singularity 143 141 EXAMPLE: example monomat; shows an example 144 142 " … … 191 189 192 190 dbprint(printlevelvoice+2,"//gaussman::monomat: compute C"); 193 C=coeffs(redNF(w,sJ,U),m );191 C=coeffs(redNF(w,sJ,U),m,product(maxideal(1))); 194 192 A0=A0+C*var(1)^k; 195 193 … … 209 207 else 210 208 { 211 dbprint(printlevelvoice+2,"//gaussman::monomat: basis of saturation"); 209 dbprint(printlevelvoice+2, 210 "//gaussman::monomat: compute basis of saturation"); 212 211 H=minbase(H0); 213 212 int modH=maxorddif(H); … … 219 218 { 220 219 N=kmodH; 221 dbprint(printlevelvoice+2,"//gaussman::monomat: A on saturation"); 220 dbprint(printlevelvoice+2, 221 "//gaussman::monomat: compute A on saturation"); 222 222 l=division(H*var(1),A0*H+var(1)^2*diff(matrix(H),var(1))); 223 223 A=expand(l[1],l[2],N1); 224 224 if(mide<0) 225 225 { 226 dbprint(printlevelvoice+2,"//gaussman::monomat: eigenvalues e of A"); 226 dbprint(printlevelvoice+2, 227 "//gaussman::monomat: compute eigenvalues e of A"); 227 228 ideal e=jordan(A,1)[1]; 228 229 dbprint(printlevelvoice+2,"//gaussman::monomat: e="+string(e)); … … 234 235 if(k<KsdH>0) 235 236 { 236 dbprint(printlevelvoice+2,"//gaussman::monomat: divi sionby J");237 dbprint(printlevelvoice+2,"//gaussman::monomat: divide by J"); 237 238 l=division(J,ideal(matrix(w)matrix(m)*C*U)); 238 239 D=l[1]; … … 346 347 proc monospec(poly f) 347 348 "USAGE: <matrix> M=monospec(<poly> f); 348 ASSUME: f defines an isolated hypersurface singularity349 349 RETURN: the spectrum of exp(2*pi*i*M) is the spectrum of monodromy 350 NOTE: f isolated singularity 350 351 EXAMPLE: example monospec; shows an example 351 352 " … … 364 365 proc vfilt(poly f,list #) 365 366 "USAGE: <list> l=vfilt(<poly> f); 366 ASSUME: f defines an isolated hypersurface singularity367 367 RETURN: <ideal> l[1] : spectral numbers in increasing order 368 368 <intvec> l[2] : … … 373 373 <ideal> l[4] : monomial vector space basis of H''/H' 374 374 <ideal> l[5] : standard basis of Jacobian ideal 375 NOTE: f isolated singularity 375 376 EXAMPLE: example vfilt; shows an example 376 377 " … … 417 418 418 419 dbprint(printlevelvoice+2,"//gaussman::vfilt: compute C"); 419 C=coeffs(redNF(w,sJ,U),m );420 C=coeffs(redNF(w,sJ,U),m,product(maxideal(1))); 420 421 A=A+C*var(1)^k; 421 422 … … 435 436 else 436 437 { 437 dbprint(printlevelvoice+2,"//gaussman::vfilt: basis of saturation"); 438 dbprint(printlevelvoice+2, 439 "//gaussman::vfilt: compute basis of saturation"); 438 440 H=minbase(H0); 439 441 int modH=maxorddif(H); … … 452 454 if(k<KsdH>0) 453 455 { 454 dbprint(printlevelvoice+2,"//gaussman::vfilt: divi sionby J");456 dbprint(printlevelvoice+2,"//gaussman::vfilt: divide by J"); 455 457 l=division(J,ideal(matrix(w)matrix(m)*C*U)); 456 458 D=l[1]; … … 482 484 H0=expand(l[1],l[2],N1); 483 485 484 dbprint(printlevelvoice+2,"//gaussman::vfilt: H0 as vector space V0"); 485 dbprint(printlevelvoice+2,"//gaussman::vfilt: H1 as vector space V1"); 486 dbprint(printlevelvoice+2, 487 "//gaussman::vfilt: compute H0 as vector space V0"); 488 dbprint(printlevelvoice+2, 489 "//gaussman::vfilt: compute H1 as vector space V1"); 486 490 poly p; 487 491 int i0,j0,i1,j1; … … 510 514 } 511 515 512 dbprint(printlevelvoice+2,"//gaussman::vfilt: A on saturation");516 dbprint(printlevelvoice+2,"//gaussman::vfilt: compute A on saturation"); 513 517 l=division(H*var(1),A*H+var(1)^2*diff(matrix(H),var(1))); 514 518 A=expand(l[1],l[2],N1); 515 519 516 dbprint(printlevelvoice+2,"//gaussman::vfilt: matrix M of A");520 dbprint(printlevelvoice+2,"//gaussman::vfilt: compute matrix M of A"); 517 521 matrix M[mu*N][mu*N]; 518 522 for(i0=mu;i0>=1;i0) … … 540 544 } 541 545 542 dbprint(printlevelvoice+2,"//gaussman::vfilt: eigenvalues eA of A");546 dbprint(printlevelvoice+2,"//gaussman::vfilt: compute eigenvalues eA of A"); 543 547 ideal eA=jordan(A,1)[1]; 544 548 dbprint(printlevelvoice+2,"//gaussman::vfilt: eA="+string(eA)); 545 549 546 dbprint(printlevelvoice+2,"//gaussman::vfilt: eigenvalues eM of M");550 dbprint(printlevelvoice+2,"//gaussman::vfilt: compute eigenvalues eM of M"); 547 551 ideal eM; 548 552 k=0; … … 572 576 dbprint(printlevelvoice+2,"//gaussman::vfilt: eM="+string(eM)); 573 577 574 dbprint(printlevelvoice+2,"//gaussman::vfilt: Vfiltration on H0/H1"); 578 dbprint(printlevelvoice+2, 579 "//gaussman::vfilt: compute Vfiltration on H0/H1"); 575 580 ideal s; 576 581 k=0; … … 602 607 } 603 608 604 dbprint(printlevelvoice+2,"//gaussman::vfilt: symmetry index reached");609 dbprint(printlevelvoice+2,"//gaussman::vfilt: symmetry index found"); 605 610 j=k; 606 611 if(number(eM[i])1==number(n1)/2) … … 687 692 } 688 693 689 dbprint(printlevelvoice+2,"//gaussman::vfilt: graded parts");694 dbprint(printlevelvoice+2,"//gaussman::vfilt: compute graded parts"); 690 695 option(redSB); 691 696 for(k=1;k<size(v);k++) … … 711 716 proc singspec(poly f) 712 717 "USAGE: <list> l=singspec(<poly> f); 713 ASSUME: f defines an isolated hypersurface singularity714 718 RETURN: <ideal> l[1] : spectral numbers in increasing order 715 719 <intvec> l[2] : 716 720 <int> l[2][i] : multiplicity of spectral number l[1][i] 721 NOTE: f isolated singularity 717 722 EXAMPLE: example singspec; shows an example 718 723 " … … 731 736 proc gamma(list l) 732 737 "USAGE: <number> g=gamma(singspec(<poly> f)); 733 ASSUME: f defines an isolated hypersurface singularity734 738 RETURN: Hertling's gamma invariant 739 NOTE: f defines an isolated singularity 735 740 EXAMPLE: example gamma; shows an example 736 741 " … … 761 766 proc gamma4(list l) 762 767 "USAGE: <number> g4=gamma4(singspec(<poly> f)); 763 ASSUME: f defines an isolated hypersurface singularity 764 RETURN: Hertling's gamma(4) invariant 768 RETURN: Hertling's gamma4 invariant 769 NOTE: f defines an isolated singularity 765 770 EXAMPLE: example gamma4; shows an example 766 771 " … … 792 797 proc vjacob(list l) 793 798 "USAGE: <list> l=vjacob(vfilt(<poly> f)); 794 ASSUME: f defines an isolated hypersurface singularity795 799 RETURN: <ideal> l[1] : spectral numbers of the Vfiltration on the 796 800 Jacobian algebra in increasing order … … 803 807 <ideal> l[4] : monomial vector space basis of the Jacobian algebra 804 808 <ideal> l[5] : standard basis of Jacobian ideal 809 NOTE: f defines an isolated singularity 805 810 EXAMPLE: example vjacob; shows an example 806 811 " … … 819 824 for(i=ncols(m);i>=1;i) 820 825 { 821 M[i]=lift(V,coeffs(redNF(m[i]*m,sJ),m)*V );826 M[i]=lift(V,coeffs(redNF(m[i]*m,sJ),m)*V,product(maxideal(1))); 822 827 } 823 828
Note: See TracChangeset
for help on using the changeset viewer.