Changeset b28bf25 in git
- Timestamp:
- Mar 7, 2018, 12:35:17 PM (5 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
- Children:
- 0d5959cf283bcd6d174bfef558dd97713320de46
- Parents:
- a754194f11ae9bb207712afed5462a5a9d443ab6
- git-author:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2018-03-07 12:35:17+01:00
- git-committer:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2018-03-07 12:37:17+01:00
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/goettsche.lib
ra754194 rb28bf25 1 1 //////////////////////////////////////////////////////////////// 2 version = "version goettsche.lib 4.1.1.0 Sep_2017 "; // $Id$ 3 category = "Betti numbers"; 2 version = "version goettsche.lib 0.931 Feb_2018 "; //$Id$ 4 3 info=" 5 4 LIBRARY: goettsche.lib Drezet's formula for the Betti numbers of the moduli space 6 of Kronecker modules ,5 of Kronecker modules; 7 6 Goettsche's formula for the Betti numbers of the Hilbert scheme 8 of points on a surface, 7 of points on a surface; 8 Nakajima's and Yoshioka's formula for the Betti numbers 9 of the punctual Quot-schemes on a plane or, equivalently, 10 of the moduli spaces of the framed torsion-free planar sheaves; 9 11 Macdonald's formula for the symmetric product 10 12 … … 21 23 [3] Macdonald, I. G., The Poincare polynomial of a symmetric product, 22 24 Mathematical proceedings of the Cambridge Philosophical Society: 23 58, 563 - 568, (1962). 25 58, 563-568, (1962). 26 27 [4] Nakajima, Hiraku; Lectures on instanton counting, CRM Proceedings and Lecture Notes, 28 Yoshioka, Kota Volume 88, 31-101, (2004). 24 29 25 30 PROCEDURES: … … 27 32 PPolyH(z, n, b); Poincare Polynomial of the Hilbert scheme of n points on a surface 28 33 BettiNumsH(n, b); Betti numbers of the Hilbert scheme of n points on a surface 34 NakYoshF(z, t, r, n); The Nakajima-Yoshioka formula up to n-th degree 35 PPolyQp(z, n, b); Poincare Polynomial of the punctual Quot-scheme 36 of rank r on n planar points 37 BettiNumsQp(n, b); Betti numbers of the punctual Quot-scheme 38 of rank r on n planar points 29 39 MacdonaldF(z, t, n, b); The Macdonald's formula up to n-th degree 30 40 PPolyS(z, n, b); Poincare Polynomial of the n-th symmetric power of a variety … … 35 45 of Kronecker modules N (q; m, n) 36 46 37 KEYWORDS: betti number; Goettsche's formula; Macdonald's formula;Kronecker modules47 KEYWORDS: Betty number; Goettsche's formula; Macdonald's formula; Kronecker module; Hilbert scheme; Quot-scheme; framed sheaves; symmetric product 38 48 "; 39 49 //---------------------------------------------------------- … … 61 71 return( poly(0) ); 62 72 } 63 // now is non-negative and b is a list of non-negative integers73 // now n is non-negative and b is a list of non-negative integers 64 74 if(size(b) < 5) // if there are not enough Betti numbers 65 75 { … … 124 134 return( poly(0) ); 125 135 } 126 // now is non-negative and b is a list of non-negative integers136 // now n is non-negative and b is a list of non-negative integers 127 137 if(size(b) < 5) // if there are not enough Betti numbers 128 138 { … … 188 198 return(list()); 189 199 } 190 // now is non-negative and b is a list of non-negative integers200 // now n is non-negative and b is a list of non-negative integers 191 201 if(size(b) < 5) // if there are not enough Betti numbers 192 202 { … … 229 239 // get the Betti numbers of the Hilbert scheme of 3 points on P_2 230 240 print( BettiNumsH(3, b) ); 241 } 242 //---------------------------------------------------------- 243 244 proc NakYoshF(poly z, poly t, int r, int n) 245 "USAGE: NakYoshF(z, t, r, n); z, t polynomials, r, n integers 246 RETURN: polynomial in z and t 247 PURPOSE: computes the formula of Nakajima and Yoshioka 248 up to degree n in t 249 EXAMPLE: example NakYoshF; shows an example 250 NOTE: zero is returned if n<0 or r<=0 251 " 252 { 253 // check the input data 254 if(n<0) 255 { 256 print("the number of points must be non-negative"); 257 print("zero polynomial is returned"); 258 return( poly(0) ); 259 } 260 if(r<=0) 261 { 262 print("r must be positive"); 263 print("zero polynomial is returned"); 264 return( poly(0) ); 265 } 266 // now n is non-negative and r is positive 267 def br@=basering; // remember the base ring 268 // add additional variables z@, t@ to the base ring 269 execute("ring r@= (" + charstr(basering) + "),("+varstr(basering)+", z@, t@), dp;" ); 270 execute( "map F= br@,"+varstr(br@)+";" ); // define the corresponding inclusion of rings 271 // compute the generating function by the Nakajima-Yoshioka formula up to degree n in t@ 272 poly rez=1; 273 int k,i; 274 ideal I=std(t@^(n+1)); 275 for(k=1;k<=n;k++) 276 { 277 for(i=1;i<=r;i++) 278 { 279 rez=NF( rez*generFactor( z@^(2*(r*k-i))*t@^k, k, 0, 1, n), I); 280 } 281 } 282 setring br@; // come back to the initial base ring 283 // define the specialization homomorphism z@=z, t@=t 284 execute( "map FF= r@,"+varstr(br@)+", z, t;" ); 285 poly rez=FF(rez); // bring the result to the base ring 286 return(rez); 287 } 288 example 289 { 290 "EXAMPLE:"; echo=2; 291 ring r=0, (t, z), ls; 292 // get the Nakajima-Yoshioka formula for r=1 up to degree 3, i.e., 293 // the generating function for the Poincare polynomials of the 294 // punctual Hilbert schemes of n planar points 295 print( NakYoshF(z, t, 1, 3) ); 296 } 297 //---------------------------------------------------------- 298 299 proc PPolyQp(poly z, int r, int n) 300 "USAGE: PPolyQp(z, r, n); z polynomial, r, n integers 301 RETURN: polynomial in z 302 PURPOSE: computes the Poincare polynomial of the punctual Quot-scheme 303 of rank r on n planar points 304 EXAMPLE: example PPolyQp; shows an example 305 NOTE: zero is returned if n<0 or r<=0 306 " 307 { 308 // check the input data 309 if(n<0) 310 { 311 print("the number of points must be non-negative"); 312 print("zero polynomial is returned"); 313 return( poly(0) ); 314 } 315 if(r<=0) 316 { 317 print("r must be positive"); 318 print("zero polynomial is returned"); 319 return( poly(0) ); 320 } 321 // now n is non-negative and r is positive 322 def br@=basering; // remember the base ring 323 // add additional variables z@, t@ to the base ring 324 execute("ring r@= (" + charstr(basering) + "),("+varstr(basering)+", z@, t@), dp;" ); 325 execute( "map F= br@,"+varstr(br@)+";" ); // define the corresponding inclusion of rings 326 // compute the generating function by the Nakajima-Yoshioka formula up to degree n in t@ 327 poly rez=1; 328 int k,i; 329 ideal I=std(t@^(n+1)); 330 for(k=1;k<=n;k++) 331 { 332 for(i=1;i<=r;i++) 333 { 334 rez=NF(rez*generFactor( z@^(2*(r*k-i))*t@^k, k, 0, 1, n), I); 335 } 336 } 337 rez= coeffs(rez, t@)[n+1, 1]; // take the coefficient of the n-th power of t@ 338 setring br@; // come back to the initial base ring 339 // define the specialization homomorphism z@=z, t@=0 340 execute( "map FF= r@,"+varstr(br@)+",z, 0;" ); 341 poly rez=FF(rez); // bring the result to the base ring 342 return(rez); 343 } 344 example 345 { 346 "EXAMPLE:"; echo=2; 347 ring r=0, (z), ls; 348 // get the Poincare polynomial of the punctual Hilbert scheme (r=1) 349 // of 3 planar points 350 print( PPolyQp(z, 1, 3) ); 351 } 352 //---------------------------------------------------------- 353 354 proc BettiNumsQp(int r, int n) 355 "USAGE: BettiNumsQp(r, n); n, r integers 356 RETURN: list of non-negative integers 357 PURPOSE: computes the Betti numbers of the punctual Quot-scheme 358 of rank r on n points on a plane 359 EXAMPLE: example BettiNumsQp; shows an example 360 NOTE: an empty list is returned if n<0 or r<=0 361 " 362 { 363 // check the input data 364 if(n<0) 365 { 366 print("the number of points must be non-negative"); 367 print("zero polynomial is returned"); 368 return( poly(0) ); 369 } 370 if(r<=0) 371 { 372 print("r must be positive"); 373 print("zero polynomial is returned"); 374 return( poly(0) ); 375 } 376 // now n is non-negative and r is positive 377 def br@=basering; // remember the base ring 378 // add additional variables z@, t@ to the base ring 379 execute("ring r@= (" + charstr(basering) + "),("+varstr(basering)+", z@, t@), dp;" ); 380 execute( "map F= br@,"+varstr(br@)+";" ); // define the corresponding inclusion of rings 381 poly rez=1; 382 int k,i; 383 ideal I=std(t@^(n+1)); 384 for(k=1;k<=n;k++) 385 { 386 for(i=1;i<=r;i++) 387 { 388 rez=NF(rez*generFactor( z@^(2*(r*k-i))*t@^k, k, 0, 1, n), I); 389 } 390 } 391 rez= coeffs(rez, t@)[n+1, 1]; // take the coefficient of the n-th power of t@ 392 matrix CF=coeffs(rez, z@); // take the matrix of the coefficients 393 list res; // and transform it to a list 394 int d=size(CF); 395 for(i=1; i<=d; i++) 396 { 397 res=res+ list(int(CF[i, 1])) ; 398 } 399 setring br@; // come back to the initial base ring 400 return(res); 401 } 402 example 403 { 404 "EXAMPLE:"; echo=2; 405 ring r=0, (z), ls; 406 // get the Betti numbers of the punctual Hilbert scheme (r=1) 407 // of 3 points on a plane 408 print( BettiNumsQp(1, 3) ); 231 409 } 232 410 //---------------------------------------------------------- … … 728 906 } 729 907 //---------------------------------------------------------- 730 -
doc/NEWS.texi
ra754194 rb28bf25 24 24 @itemize 25 25 @item schreyer.lib: deprecated 26 @item goettsche.lib: new, extended version (The Nakajima-Yoshioka formula up to n-th degree,Poincare Polynomial of the punctual Quot-scheme of rank r on n planar points Betti numbers of the punctual Quot-scheme of rank r on n planar points)(@nref{goettsche_lib}) 26 27 @item grobcov.lib: small bug fix (@nref{grobcov_lib}) 27 28 @end itemize
Note: See TracChangeset
for help on using the changeset viewer.