|  |  D.5.10.5 sheafCohBGG2 Procedure from librarysheafcoh.lib(see  sheafcoh_lib).
 
Example:Usage:
sheafCohBGG2(M,l,h); M module, l,h int
Assume:
Mis graded, and it comes assigned with an admissible degree
vector as an attribute,h>=l, and the basering hasn+1variables.
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: 
 A|  |                 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))
 | 
 '-'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.
Ifprintlevel>=2 we add progress debug messages
ifprintlevel>=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 ofh^i(F(d)),d=l..h,
usesheafCohBGG(M,l-n,h+n).
Experimental version. Should require less memory.
 See also:
 sheafCohBGG.|  | 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:  10
//////////////////////////////////////////////
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:  2
//////////////////////////////////////////////
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:  2
//////////////////////////////////////////////
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;
 | 
 
 |