|
D.5.18.5 sheafCohBGG2
Procedure from library sheafcoh.lib (see sheafcoh_lib).
- Usage:
- sheafCohBGG2(M,l,h); M module, l,h int
- Assume:
M is graded, and it comes assigned with an admissible degree
vector as an attribute, h>=l , and the basering has n+1
variables.
- Return:
- intmat, cohomology of twists of the coherent sheaf F on P^n
associated to coker(M). The range of twists is determined by
l ,
h .
- Display:
- The intmat is displayed in a diagram of the following form:
| l l+1 h
----------------------------------------------------------
n: h^n(F(l)) h^n(F(l+1)) ...... h^n(F(h))
...............................................
1: h^1(F(l)) h^1(F(l+1)) ...... h^1(F(h))
0: h^0(F(l)) h^0(F(l+1)) ...... h^0(F(h))
----------------------------------------------------------
chi: chi(F(l)) chi(F(l+1)) ...... chi(F(h))
| A '-' in the diagram refers to a zero entry; a '*'
refers to a negative entry (= dimension not yet determined).
refers to a not computed dimension.
If printlevel >=1, step-by step timings will be printed.
If printlevel >=2 we add progress debug messages
if printlevel >=3, even all intermediate results...
- Note:
- This procedure is based on the Bernstein-Gel'fand-Gel'fand
correspondence and on Tate resolution ( see [Eisenbud, Floystad,
Schreyer: Sheaf cohomology and free resolutions over exterior
algebras, Trans AMS 355 (2003)] ).
sheafCohBGG(M,l,h) does not compute all values in the above
table. To determine all values of h^i(F(d)) , d=l..h ,
use sheafCohBGG(M,l-n,h+n) .
Experimental version. Should require less memory.
Example:
| LIB "sheafcoh.lib";
int pl = printlevel;
int l,h, t;
//-------------------------------------------
// cohomology of structure sheaf on P^4:
//-------------------------------------------
ring r=32001,x(1..5),dp;
==> // ** 32001 is invalid as characteristic of the ground field. 32003 is us\
ed.
module M= getStructureSheaf(); // OO_P^4
l = -12; h = 12; // range of twists: l..h
printlevel = 0;
//////////////////////////////////////////////
t = timer;
def A = sheafCoh(M, l, h); // global Ext method:
==> -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 \
-1 0 1 2 3 4 5 6 7 8 9 10 \
11 12
==> ----------------------------------------------------------------------------------------------------------------------------------------------------------
==> 4: 330 210 126 70 35 15 5 1 - - - \
- - - - - - - - - - - - - -
==> 3: - - - - - - - - - - - \
- - - - - - - - - - - - - -
==> 2: - - - - - - - - - - - \
- - - - - - - - - - - - - -
==> 1: - - - - - - - - - - - \
- - - - - - - - - - - - - -
==> 0: - - - - - - - - - - - \
- 1 5 15 35 70 126 210 330 495 715 1001 13\
65 1820
==> ----------------------------------------------------------------------------------------------------------------------------------------------------------
==> chi: 330 210 126 70 35 15 5 1 0 0 0 \
0 1 5 15 35 70 126 210 330 495 715 1001 13\
65 1820
"Time: ", timer - t;
==> Time: 3
//////////////////////////////////////////////
t = timer;
A = sheafCohBGG(M, l, h); // BGG method (without optimization):
==> -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 \
-1 0 1 2 3 4 5 6 7 8 9 10 \
11 12
==> ----------------------------------------------------------------------------------------------------------------------------------------------------------
==> 4: 330 210 126 70 35 15 5 1 - - - \
- - - - - - - - - - * * * *
==> 3: * - - - - - - - - - - \
- - - - - - - - - - - * * *
==> 2: * * - - - - - - - - - \
- - - - - - - - - - - - * *
==> 1: * * * - - - - - - - - \
- - - - - - - - - - - - - *
==> 0: * * * * - - - - - - - \
- 1 5 15 35 70 126 210 330 495 715 1001 13\
65 1820
==> ----------------------------------------------------------------------------------------------------------------------------------------------------------
==> chi: * * * * 35 15 5 1 0 0 0 \
0 1 5 15 35 70 126 210 330 495 * * \
* *
"Time: ", timer - t;
==> Time: 11
//////////////////////////////////////////////
t = timer;
A = sheafCohBGG2(M, l, h); // BGG method (with optimization)
==> Cohomology table:
==> -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 \
-1 0 1 2 3 4 5 6 7 8 9 10 \
11 12
==> ----------------------------------------------------------------------------------------------------------------------------------------------------------
==> 4: 330 210 126 70 35 15 5 1 - - - \
- - - - - - - - - - - - - -
==> 3: * - - - - - - - - - - \
- - - - - - - - - - - - - -
==> 2: * * - - - - - - - - - \
- - - - - - - - - - - - - -
==> 1: * * * - - - - - - - - \
- - - - - - - - - - - - - -
==> 0: * * * * - - - - - - - \
- 1 5 15 35 70 126 210 330 495 715 1001 13\
65 1820
==> ----------------------------------------------------------------------------------------------------------------------------------------------------------
==> chi: * * * * 35 15 5 1 0 0 0 \
0 1 5 15 35 70 126 210 330 495 715 1001 13\
65 1820
"Time: ", timer - t;
==> Time: 3
//////////////////////////////////////////////
printlevel = pl;
kill A, r;
//-------------------------------------------
// cohomology of cotangential bundle on P^3:
//-------------------------------------------
ring R=32001,(x,y,z,u),dp;
==> // ** 32001 is invalid as characteristic of the ground field. 32003 is us\
ed.
module M = getCotangentialBundle();
l = -12; h = 11; // range of twists: l..h
//////////////////////////////////////////////
printlevel = 0;
t = timer;
def B = sheafCoh(M, l, h); // global Ext method:
==> -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 \
1 2 3 4 5 6 7 8 9 10 11
==> ----------------------------------------------------------------------------------------------------------------------------
==> 3: 715 540 396 280 189 120 70 36 15 4 - - - \
- - - - - - - - - - -
==> 2: - - - - - - - - - - - - - \
- - - - - - - - - - -
==> 1: - - - - - - - - - - - - 1 \
- - - - - - - - - - -
==> 0: - - - - - - - - - - - - - \
- 6 20 45 84 140 216 315 440 594 780
==> ----------------------------------------------------------------------------------------------------------------------------
==> chi: -715 -540 -396 -280 -189 -120 -70 -36 -15 -4 0 0 -1 \
0 6 20 45 84 140 216 315 440 594 780
"Time: ", timer - t;
==> Time: 1
//////////////////////////////////////////////
t = timer;
B = sheafCohBGG(M, l, h); // BGG method (without optimization):
==> -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 \
1 2 3 4 5 6 7 8 9 10 11
==> ----------------------------------------------------------------------------------------------------------------------------
==> 3: 715 540 396 280 189 120 70 36 15 4 - - - \
- - - - - - - - * * *
==> 2: * - - - - - - - - - - - - \
- - - - - - - - - * *
==> 1: * * - - - - - - - - - - 1 \
- - - - - - - - - - *
==> 0: * * * - - - - - - - - - - \
- 6 20 45 84 140 216 315 440 594 780
==> ----------------------------------------------------------------------------------------------------------------------------
==> chi: * * * -280 -189 -120 -70 -36 -15 -4 0 0 -1 \
0 6 20 45 84 140 216 315 * * *
"Time: ", timer - t;
==> Time: 1
//////////////////////////////////////////////
t = timer;
B = sheafCohBGG2(M, l, h); // BGG method (with optimization)
==> Cohomology table:
==> -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 \
1 2 3 4 5 6 7 8 9 10 11
==> ----------------------------------------------------------------------------------------------------------------------------
==> 3: 715 540 396 280 189 120 70 36 15 4 - - - \
- - - - - - - - - - -
==> 2: * - - - - - - - - - - - - \
- - - - - - - - - - -
==> 1: * * - - - - - - - - - - 1 \
- - - - - - - - - - -
==> 0: * * * - - - - - - - - - - \
- 6 20 45 84 140 216 315 440 594 780
==> ----------------------------------------------------------------------------------------------------------------------------
==> chi: * * * -280 -189 -120 -70 -36 -15 -4 0 0 -1 \
0 6 20 45 84 140 216 315 440 594 780
"Time: ", timer - t;
==> Time: 0
//////////////////////////////////////////////
printlevel = pl;
| See also:
sheafCohBGG.
|