Ignore:
Timestamp:
Sep 24, 2010, 5:16:44 PM (14 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
731e4dff10fbf61f908cbb628058b4252455f60b
Parents:
7ef5b62b7463b2574e24d6d9b80966ea720ba93b
Message:
format

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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/surfacesignature.lib

    r7ef5b6 rf9c3c3  
     1//
    12version="$Id$";
    23category="Singularities";
    34info="
    4 LIBRARY:  signaturesurfsing.lib       signature of surface singularity
     5LIBRARY:  surfacesignature.lib       signature of surface singularity
    56
    67AUTHORS:  Gerhard Pfister             pfister@mathematik.uni-kl.de
    78@*        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
     11OVERVIEW:
    1112
    1213  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),
    1819  131-149].
    1920
     
    3132
    3233static 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]
    3435//=== using the Puiseux pairs (m_1, n_1),...,(m_s, n_s) of f:
    35 //===  - a_1 = m_1, 
     36//===  - a_1 = m_1,
    3637//===  - a_i = m_i - n_i * (m_[i-1] - n_[i-1] * a_[i-1]).
    3738//===
     
    4546   list puiseuxPairs = invariants(f);
    4647   setring R;
    47    
     48
    4849   intvec M = puiseuxPairs[1][3];
    4950   intvec N = puiseuxPairs[1][4];
    50    
     51
    5152   int i;
    5253   int a = M[1];
     
    5758      A[size(A)+1] = a;
    5859   }
    59  
     60
    6061   return(list(A,N));
    6162}
     
    7677   int a_temp, t, k1, k2, k3, s_t, sigma;
    7778   number s;
    78    
     79
    7980   if(a1 > a2) { a_temp = a1; a1 = a2; a2 = a_temp; }
    8081   if(a2 > a3) { a_temp = a2; a2 = a3; a3 = a_temp; }
    8182   if(a1 > a2) { a_temp = a1; a1 = a2; a2 = a_temp; }
    82    
     83
    8384   for(t = 0; t <= 2; t++)
    8485   {
     
    99100                  else
    100101                  {
    101                      break; 
     102                     break;
    102103                  }
    103104               }
     
    128129   list L = exponentSequence(f);
    129130   int s = size(L[2]);
    130    
     131
    131132   if(s == 1)
    132133   {
    133134      return(brieskornSign(L[1][1], L[2][1], N));
    134135   }
    135    
     136
    136137   prod = 1;
    137138   sigma = brieskornSign(L[1][s], L[2][s], N);
     
    142143      sigma = sigma + d * brieskornSign(L[1][i], L[2][i], N/d);
    143144   }
    144    
     145
    145146   return(sigma);
    146147}
     
    191192
    192193static 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
    194195//=== isolated curve singularity
    195196//=== N the incidence matrix of the resolution graph of g
     
    220221
    221222static 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
    223224//=== isolated curve singularity
    224225//=== N the incidence matrix of the resolution graph of g
     
    275276            }
    276277         }
    277       }   
     278      }
    278279   }
    279280   if(a==1)
     
    309310static proc etaSpec(list L, int N)
    310311//=== 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
    312313{
    313314   int i;
    314315   number e, h;
    315    
     316
    316317   int n = ncols(L[1]);
    317    
    318    if((n mod 2) == 0)               
     318
     319   if((n mod 2) == 0)
    319320   // 0 is not a spectral number, thus f is irreducible
    320321   {
     
    329330   {
    330331      // 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
    339340      // summand coming from spectral number 0 in eta function
    340341      h = h + L[3][(n+1)/2];
    341      
     342
    342343      // sum coming from non-zero spectral numbers in eta function
    343344      for(i = (n+3)/2; i <= n; i++)
     
    347348            e = e + (1 - 2 * fracPart(N * number(L[1][i]))) * L[3][i];
    348349         }
    349       }   
     350      }
    350351      return(h + 2*e);
    351352   }
     
    369370      return(etaRes(L,N) - N*etaRes(L,1));
    370371   }
    371    
     372
    372373   if(#[1] == 1)
    373374   {
    374375      return(signatureP(N,f));
    375376   }
    376    
     377
    377378   if(#[1] == 2)
    378379   {
     
    380381      return(etaRes(L,N) - N*etaRes(L,1));
    381382   }
    382    
     383
    383384   if(#[1] == 3)
    384385   {
     
    416417
    417418N = 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;                                               
     419f = x15-21x14+8x13y-6x13-16x12y+20x11y2-x12+8x11y-36x10y2
     420    +24x9y3+4x9y2-16x8y3+26x7y4-6x6y4+8x5y5+4x3y6-y8;
     421g = f^3 + x17y17;
    421422
    422423N = 6;
    423 f = y4+2x3y2+x6+x5y;                                             
     424f = y4+2x3y2+x6+x5y;
    424425g1 = f^2 + x5y5;
    425426g2 = f^3 + x11y11;
     
    431432g2 = f^3 + x17y17;
    432433
    433 N = 6;     
     434N = 6;
    434435// k0 = 30, k1 = 35, k2 = 71
    435436f = x71+6x65+15x59-630x52y6+20x53+6230x46y6+910x39y12+15x47
     
    446447    -28x18y4+240x17y5-976x16y6+2208x15y7-2494x14y8+816x13y9+56x15y6
    447448    -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;
    449450
    450451
Note: See TracChangeset for help on using the changeset viewer.