Changeset f9c3c3 in git
- Timestamp:
- Sep 24, 2010, 5:16:44 PM (13 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- 731e4dff10fbf61f908cbb628058b4252455f60b
- Parents:
- 7ef5b62b7463b2574e24d6d9b80966ea720ba93b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/surfacesignature.lib
r7ef5b6 rf9c3c3 1 // 1 2 version="$Id$"; 2 3 category="Singularities"; 3 4 info=" 4 LIBRARY: s ignaturesurfsing.lib signature of surface singularity5 LIBRARY: surfacesignature.lib signature of surface singularity 5 6 6 7 AUTHORS: Gerhard Pfister pfister@mathematik.uni-kl.de 7 8 @* Muhammad Ahsan Banyamin ahsanbanyamin@gmail.com 8 @* Stefan Steidel steidel@mathematik.uni-kl.de 9 10 OVERVIEW: 9 @* Stefan Steidel steidel@mathematik.uni-kl.de 10 11 OVERVIEW: 11 12 12 13 A library for computing the signature of irreducible surface singularity. 13 The signature of a surface singularity is defined in [Durfee, A.: The 14 Signature of Smoothings of Complex Surface Singularities, Math. Ann., 232, 15 85-98 (1978)]. The algorithm we use has been proposed in [Nemethi, A.: The 16 signature of f(x,y)+z^N, Proceedings of Singularity Conference (C.T.C. Wall's 17 60th birthday meeting), Liverpool 1996, London Math.Soc. LN 263(1999), 14 The signature of a surface singularity is defined in [Durfee, A.: The 15 Signature of Smoothings of Complex Surface Singularities, Math. Ann., 232, 16 85-98 (1978)]. The algorithm we use has been proposed in [Nemethi, A.: The 17 signature of f(x,y)+z^N, Proceedings of Singularity Conference (C.T.C. Wall's 18 60th birthday meeting), Liverpool 1996, London Math.Soc. LN 263(1999), 18 19 131-149]. 19 20 … … 31 32 32 33 static proc exponentSequence(poly f) 33 //=== computes the sequence a_1,...,a_s of exponents as described in [Nemethi] 34 //=== computes the sequence a_1,...,a_s of exponents as described in [Nemethi] 34 35 //=== using the Puiseux pairs (m_1, n_1),...,(m_s, n_s) of f: 35 //=== - a_1 = m_1, 36 //=== - a_1 = m_1, 36 37 //=== - a_i = m_i - n_i * (m_[i-1] - n_[i-1] * a_[i-1]). 37 38 //=== … … 45 46 list puiseuxPairs = invariants(f); 46 47 setring R; 47 48 48 49 intvec M = puiseuxPairs[1][3]; 49 50 intvec N = puiseuxPairs[1][4]; 50 51 51 52 int i; 52 53 int a = M[1]; … … 57 58 A[size(A)+1] = a; 58 59 } 59 60 60 61 return(list(A,N)); 61 62 } … … 76 77 int a_temp, t, k1, k2, k3, s_t, sigma; 77 78 number s; 78 79 79 80 if(a1 > a2) { a_temp = a1; a1 = a2; a2 = a_temp; } 80 81 if(a2 > a3) { a_temp = a2; a2 = a3; a3 = a_temp; } 81 82 if(a1 > a2) { a_temp = a1; a1 = a2; a2 = a_temp; } 82 83 83 84 for(t = 0; t <= 2; t++) 84 85 { … … 99 100 else 100 101 { 101 break; 102 break; 102 103 } 103 104 } … … 128 129 list L = exponentSequence(f); 129 130 int s = size(L[2]); 130 131 131 132 if(s == 1) 132 133 { 133 134 return(brieskornSign(L[1][1], L[2][1], N)); 134 135 } 135 136 136 137 prod = 1; 137 138 sigma = brieskornSign(L[1][s], L[2][s], N); … … 142 143 sigma = sigma + d * brieskornSign(L[1][i], L[2][i], N/d); 143 144 } 144 145 145 146 return(sigma); 146 147 } … … 191 192 192 193 static proc sumExcepDiv(intmat N, list M, int K, int n) 193 //=== computes part of the formulae for eta(g,K), g defining an 194 //=== computes part of the formulae for eta(g,K), g defining an 194 195 //=== isolated curve singularity 195 196 //=== N the incidence matrix of the resolution graph of g … … 220 221 221 222 static proc sumEdges(intmat N, list M, int K, int n) 222 //=== computes part of the formulae for eta(g,K), g defining an 223 //=== computes part of the formulae for eta(g,K), g defining an 223 224 //=== isolated curve singularity 224 225 //=== N the incidence matrix of the resolution graph of g … … 275 276 } 276 277 } 277 } 278 } 278 279 } 279 280 if(a==1) … … 309 310 static proc etaSpec(list L, int N) 310 311 //=== L spectral numbers 311 //=== eta-invariant in terms of the spectral pairs of f 312 //=== eta-invariant in terms of the spectral pairs of f 312 313 { 313 314 int i; 314 315 number e, h; 315 316 316 317 int n = ncols(L[1]); 317 318 if((n mod 2) == 0) 318 319 if((n mod 2) == 0) 319 320 // 0 is not a spectral number, thus f is irreducible 320 321 { … … 329 330 { 330 331 // sum of Hodge numbers in eta function 331 for(i = 1; i <= n; i++) 332 { 333 if((L[2][i] == 2)&&((denominator(leadcoef(N*L[1][i]))==1)||(denominator(leadcoef(N*L[1][i]))==-1))) 334 { 335 h = h + L[3][i]; 336 } 337 } 338 332 for(i = 1; i <= n; i++) 333 { 334 if((L[2][i] == 2)&&((denominator(leadcoef(N*L[1][i]))==1)||(denominator(leadcoef(N*L[1][i]))==-1))) 335 { 336 h = h + L[3][i]; 337 } 338 } 339 339 340 // summand coming from spectral number 0 in eta function 340 341 h = h + L[3][(n+1)/2]; 341 342 342 343 // sum coming from non-zero spectral numbers in eta function 343 344 for(i = (n+3)/2; i <= n; i++) … … 347 348 e = e + (1 - 2 * fracPart(N * number(L[1][i]))) * L[3][i]; 348 349 } 349 } 350 } 350 351 return(h + 2*e); 351 352 } … … 369 370 return(etaRes(L,N) - N*etaRes(L,1)); 370 371 } 371 372 372 373 if(#[1] == 1) 373 374 { 374 375 return(signatureP(N,f)); 375 376 } 376 377 377 378 if(#[1] == 2) 378 379 { … … 380 381 return(etaRes(L,N) - N*etaRes(L,1)); 381 382 } 382 383 383 384 if(#[1] == 3) 384 385 { … … 416 417 417 418 N = 5; 418 f = x15-21x14+8x13y-6x13-16x12y+20x11y2-x12+8x11y-36x10y2 419 +24x9y3+4x9y2-16x8y3+26x7y4-6x6y4+8x5y5+4x3y6-y8; 420 g = f^3 + x17y17; 419 f = x15-21x14+8x13y-6x13-16x12y+20x11y2-x12+8x11y-36x10y2 420 +24x9y3+4x9y2-16x8y3+26x7y4-6x6y4+8x5y5+4x3y6-y8; 421 g = f^3 + x17y17; 421 422 422 423 N = 6; 423 f = y4+2x3y2+x6+x5y; 424 f = y4+2x3y2+x6+x5y; 424 425 g1 = f^2 + x5y5; 425 426 g2 = f^3 + x11y11; … … 431 432 g2 = f^3 + x17y17; 432 433 433 N = 6; 434 N = 6; 434 435 // k0 = 30, k1 = 35, k2 = 71 435 436 f = x71+6x65+15x59-630x52y6+20x53+6230x46y6+910x39y12+15x47 … … 446 447 -28x18y4+240x17y5-976x16y6+2208x15y7-2494x14y8+816x13y9+56x15y6 447 448 -320x14y7+844x13y8-1216x12y9+440x11y10-70x12y8+240x11y9-344x10y10 448 +240x9y11+56x9y10-96x8y11+52x7y12-28x6y12+16x5y13+8x3y14-y16; 449 +240x9y11+56x9y10-96x8y11+52x7y12-28x6y12+16x5y13+8x3y14-y16; 449 450 450 451
Note: See TracChangeset
for help on using the changeset viewer.