Home Online Manual
Top
Back: sheafCohBGG
Forward: sheafCoh
FastBack:
FastForward:
Up: sheafcoh_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

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.