Changeset 4d8049f in git


Ignore:
Timestamp:
Mar 3, 2021, 9:51:54 AM (3 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'd25190065115c859833252500a64cfb7b11e3a50')
Children:
31c6e9123b279b3c1d4b88510d92a7018b57fbb2
Parents:
ca899b79b2b68c594ba1ee0e0933ff3665264f5a9bebecf179644150ab8d4539f30db1d946e6710c
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2021-03-03 09:51:54+01:00
git-committer:
GitHub <noreply@github.com>2021-03-03 09:51:54+01:00
Message:
Merge pull request #1021 from fingolfin/mh/gh-actions-more

More CI tests on GitHub action
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • .github/workflows/runtests.yml

    rca899b r4d8049f  
    1313      matrix:
    1414        os: [ubuntu-latest, macos-latest]
    15         configflags: ["", "--without-ntl --with-flint"]
     15        configflags: ["", "--with-ntl --with-flint", "--without-ntl --with-flint"]
    1616
    1717    steps:
     
    1919      - name: "Install dependencies"
    2020        run: |
     21               FLINT_JLL="https://github.com/JuliaBinaryWrappers/FLINT_jll.jl/releases/download/FLINT-v200.700.0%2B0/FLINT.v200.700.0"
    2122               if [ "$RUNNER_OS" == "Linux" ]; then
    2223                    # sharutils is for uudecode
    2324                    sudo apt install sharutils libgmp-dev libreadline-dev libmpfr-dev libntl-dev libcdd-dev 4ti2 normaliz
    24                     # install new enough FLINT (>= 2.6.0)
    25                     wget -O FLINT.tar.gz "https://github.com/JuliaBinaryWrappers/FLINT_jll.jl/releases/download/FLINT-v2.6.0%2B0/FLINT.v2.6.0.x86_64-linux-gnu.tar.gz"
     25                    # install new enough FLINT
     26                    wget -O FLINT.tar.gz "${FLINT_JLL}.x86_64-linux-gnu.tar.gz"
    2627                    sudo tar -C /usr -xvf FLINT.tar.gz
    2728                    rm -f FLINT.tar.gz
    2829               elif [ "$RUNNER_OS" == "macOS" ]; then
    29                     brew install autoconf automake libtool gmp readline mpfr ntl flint cddlib
     30                    brew install autoconf automake libtool gmp readline mpfr ntl cddlib
    3031                    # TODO: 4ti2?
    3132                    # TODO: normaliz?
     33                    # install new enough FLINT
     34                    wget -O FLINT.tar.gz "${FLINT_JLL}.x86_64-apple-darwin.tar.gz"
     35                    sudo mkdir -p /usr/local
     36                    sudo tar -C /usr/local -xvf FLINT.tar.gz
     37                    rm -f FLINT.tar.gz
    3238               else
    3339                    echo "$RUNNER_OS not supported"
     
    3945      - run: make check
    4046      - run: make install
     47      - run: cd Tst && ./regress.cmd -s $prefix/bin/Singular Old/universal.lst
     48        if: ${{ always() }}
     49      #- run: cd Tst && ./regress.cmd -s $prefix/bin/Singular Buch/buch.lst
     50      #  if: ${{ always() }}
     51      - run: cd Tst && ./regress.cmd -s $prefix/bin/Singular Plural/short.lst
     52        if: ${{ always() }}
     53      - run: cd Tst && ./regress.cmd -s $prefix/bin/Singular Plural/dmod.lst
     54        if: ${{ always() }}
     55      - run: cd Tst && ./regress.cmd -s $prefix/bin/Singular Short/ok_s.lst
     56        if: ${{ always() }}
     57      #- run: cd Tst && ./regress.cmd -s $prefix/bin/Singular Long/ok_l.lst
     58      #  if: ${{ always() }}
    4159
    4260# TODO: code coverage?
  • Singular/LIB/sheafcoh.lib

    r9bebec r4d8049f  
    127127"
    128128{
    129   if ( typeof(attrib(phi,"isHomog"))=="string" ) {
    130     if (size(phi)==0) {
     129  if ( typeof(attrib(phi,"isHomog"))=="string" )
     130  {
     131    if (size(phi)==0)
     132    {
    131133      // assign weights 0 to generators of R^n (n=nrows(phi))
    132134      intvec v;
     
    134136      attrib(phi,"isHomog",v);
    135137    }
    136     else {
     138    else
     139    {
    137140      ERROR("No admissible degree vector assigned");
    138141    }
    139142  }
    140   else {
     143  else
     144  {
    141145   intvec v=attrib(phi,"isHomog");
    142146  }
     
    144148  int s = nrows(phi);
    145149  module L; // TOO BIG!!!
    146   for (i=1; i<=s; i++) {
    147     if (d>v[i]) {
     150  for (i=1; i<=s; i++)
     151  {
     152    if (d>v[i])
     153    {
    148154      L = L+maxideal(d-v[i])*gen(i);
    149155    }
    150     else {
     156    else
     157    {
    151158      L = L+gen(i);
    152159    }
     
    227234  dbprint(PL-1, "// M is a SB! ");
    228235
    229   if ( typeof(attrib(M,"isHomog"))=="string" ) {
    230     if (size(M)==0) {
     236  if ( typeof(attrib(M,"isHomog"))=="string" )
     237  {
     238    if (size(M)==0)
     239    {
    231240      // assign weights 0 to generators of R^n (n=nrows(M))
    232241      intvec v;
     
    234243      attrib(M,"isHomog",v);
    235244    }
    236     else {
     245    else
     246    {
    237247      ERROR("No admissible degree vector assigned");
    238248    }
    239249  }
    240   else {
     250  else
     251  {
    241252   intvec v=attrib(M,"isHomog");
    242253  }
     
    247258  int s = nrows(M);
    248259
    249    int tKBaseBegin = timer;
    250     module L = kbase(M, d); // TODO: check whether this is always correct!?!
    251 
    252 
    253     dbprint(PL-1, "// L = kbase(M,d): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
    254     dbprint(PL-2, L);
    255     dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
    256 
    257    int tModuloBegin = timer;
    258     L = modulo(L,M);
    259 
    260     dbprint(PL-1, "// L = modulo(L,M): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
    261     dbprint(PL-2, L);
    262     dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
    263 
    264    int tPruneBegin = timer;
    265     L = prune(L);
    266 
    267     dbprint(PL-1, "// L = prune(L): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
    268     dbprint(PL-2, L);
    269     dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
    270 
    271    int tPruneEnd = timer;
    272     L = minbase(L);
    273    int tMinBaseEnd = timer;
    274 
    275     dbprint(PL-1, "// L = minbase(L): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
    276     dbprint(PL-2, L);
    277     dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
    278 
    279 
    280 
     260  int tKBaseBegin = timer;
     261  module L = kbase(M, d); // TODO: check whether this is always correct!?!
     262
     263  dbprint(PL-1, "// L = kbase(M,d): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
     264  dbprint(PL-2, L);
     265  dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
     266
     267  int tModuloBegin = timer;
     268  L = modulo(L,M);
     269
     270  dbprint(PL-1, "// L = modulo(L,M): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
     271  dbprint(PL-2, L);
     272  dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
     273
     274  int tPruneBegin = timer;
     275  L = prune(L);
     276
     277  dbprint(PL-1, "// L = prune(L): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
     278  dbprint(PL-2, L);
     279  dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
     280
     281  int tPruneEnd = timer;
     282  L = minbase(L);
     283  int tMinBaseEnd = timer;
     284
     285  dbprint(PL-1, "// L = minbase(L): "+string(nrows(L)) + " x " + string(ncols(L)) +"");
     286  dbprint(PL-2, L);
     287  dbprint(PL-1, "// weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
    281288
    282289  if (size(L)!=0)
    283290  {
    284 
    285291    // it only remains to set the degrees for L:
    286292    // ------------------------------------------
     
    298304  dbprint(PL-1, "// corrected weighting(L): ["+ string(attrib(L, "isHomog")) + "]");
    299305
    300 
    301306  if(PL > 0)
    302307  {
     
    313318
    314319  option(set, save);
    315 
    316320  return(L);
    317321}
    318322example
    319323{"EXAMPLE:";
    320    echo = 2;
    321    ring R=0,(x,y,z,u,v),dp;
    322    module M=maxideal(3);
    323    homog(M);
    324    // compute presentation matrix for truncated module (R/<x,y,z,u>^3)_(>=2)
    325    int t=timer;
    326    module M2t=truncate(M,2);
    327    t = timer - t;
    328    "// Simple truncate: ", t;
    329    t=timer;
    330    module M2=truncateFast(std(M),2);
    331    t = timer - t;
    332    "// Fast truncate: ", t;
    333    print(M2);
    334    "// Check: M2t == M2?: ", size(NF(M2, std(M2t))) + size(NF(M2t, std(M2)));
    335 
    336    dimGradedPart(M2,1);
    337    dimGradedPart(M2,2);
    338    // this should coincide with:
    339    dimGradedPart(M,2);
    340    // shift grading by 1:
    341    intvec v=1;
    342    attrib(M,"isHomog",v);
    343    t=timer;
    344    M2t=truncate(M,2);
    345    t = timer - t;
    346    "// Simple truncate: ", t;
    347    t=timer;
    348    M2=truncateFast(std(M),2);
    349    t = timer - t;
    350    "// Fast truncate: ", t;
    351    print(M2);
    352    "// Check: M2t == M2?: ", size(NF(M2, std(M2t))) + size(NF(M2t, std(M2))); //?
    353    dimGradedPart(M2,3);
     324  echo = 2;
     325  ring R=0,(x,y,z,u,v),dp;
     326  module M=maxideal(3);
     327  homog(M);
     328  // compute presentation matrix for truncated module (R/<x,y,z,u>^3)_(>=2)
     329  int t=timer;
     330  module M2t=truncate(M,2);
     331  t = timer - t;
     332  "// Simple truncate: ", t;
     333  t=timer;
     334  module M2=truncateFast(std(M),2);
     335  t = timer - t;
     336  "// Fast truncate: ", t;
     337  print(M2);
     338  "// Check: M2t == M2?: ", size(NF(M2, std(M2t))) + size(NF(M2t, std(M2)));
     339
     340  dimGradedPart(M2,1);
     341  dimGradedPart(M2,2);
     342  // this should coincide with:
     343  dimGradedPart(M,2);
     344  // shift grading by 1:
     345  intvec v=1;
     346  attrib(M,"isHomog",v);
     347  t=timer;
     348  M2t=truncate(M,2);
     349  t = timer - t;
     350  "// Simple truncate: ", t;
     351  t=timer;
     352  M2=truncateFast(std(M),2);
     353  t = timer - t;
     354  "// Fast truncate: ", t;
     355  print(M2);
     356  "// Check: M2t == M2?: ", size(NF(M2, std(M2t))) + size(NF(M2t, std(M2))); //?
     357  dimGradedPart(M2,3);
    354358}
    355359
    356360///////////////////////////////////////////////////////////////////////////////
    357 
    358 
    359 
    360 
    361361
    362362proc dimGradedPart(module phi, int d)
     
    371371"
    372372{
    373   if ( typeof(attrib(phi,"isHomog"))=="string" ) {
    374     if (size(phi)==0) {
     373  if ( typeof(attrib(phi,"isHomog"))=="string" )
     374  {
     375    if (size(phi)==0)
     376    {
    375377      // assign weights 0 to generators of R^n (n=nrows(phi))
    376378      intvec v;
     
    379381    else { ERROR("No admissible degree vector assigned"); }
    380382  }
    381   else {
     383  else
     384  {
    382385    intvec v=attrib(phi,"isHomog");
    383386  }
     
    385388  int i,m,dummy;
    386389  module L,LL;
    387   for (i=1; i<=s; i++) {
    388     if (d>v[i]) {
     390  for (i=1; i<=s; i++)
     391  {
     392    if (d>v[i])
     393    {
    389394      L = L+maxideal(d-v[i])*gen(i);
    390395      LL = LL+maxideal(d+1-v[i])*gen(i);
    391396    }
    392     else {
     397    else
     398    {
    393399      L = L+gen(i);
    394       if (d==v[i]) {
     400      if (d==v[i])
     401      {
    395402        LL = LL+maxideal(1)*gen(i);
    396403      }
    397       else {
     404      else
     405      {
    398406        LL = LL+gen(i);
    399407      }
     
    435443"
    436444{
    437   if ( typeof(attrib(M,"isHomog"))=="string" ) {
    438     if (size(M)==0) {
     445  if ( typeof(attrib(M,"isHomog"))=="string" )
     446  {
     447    if (size(M)==0)
     448    {
    439449      // assign weights 0 to generators of R^n (n=nrows(M))
    440450      intvec v;
     
    442452      attrib(M,"isHomog",v);
    443453    }
    444     else {
     454    else
     455    {
    445456      ERROR("No admissible degree vector assigned");
    446457    }
     
    450461  {
    451462    def L = minres( res(M,0) ); // let's try it out!
    452   } else
     463  }
     464  else
    453465  {
    454466    def L = mres(M,0);
     
    457469  intmat BeL = betti(L);
    458470  int r = nrows(module(matrix(BeL)));  // last non-zero row
    459   if (typeof(attrib(BeL,"rowShift"))!="string") {
     471  if (typeof(attrib(BeL,"rowShift"))!="string")
     472  {
    460473    int shift = attrib(BeL,"rowShift");
    461474  }
     
    464477example
    465478{"EXAMPLE:";
    466    echo = 2;
    467    ring R=0,(x,y,z,u),dp;
    468    resolution T1=mres(maxideal(1),0);
    469    module M=T1[3];
    470    intvec v=2,2,2,2,2,2;
    471    attrib(M,"isHomog",v);
    472    CM_regularity(M);
     479  echo = 2;
     480  ring R=0,(x,y,z,u),dp;
     481  resolution T1=mres(maxideal(1),0);
     482  module M=T1[3];
     483  intvec v=2,2,2,2,2,2;
     484  attrib(M,"isHomog",v);
     485  CM_regularity(M);
    473486}
    474487
     
    579592example
    580593{"EXAMPLE:";
    581    echo = 2;
    582    // cohomology of structure sheaf on P^4:
    583    //-------------------------------------------
    584    ring r=0,x(1..5),dp;
    585    module M=0;
    586    def A=sheafCohBGG(M,-9,4);
    587    // cohomology of cotangential bundle on P^3:
    588    //-------------------------------------------
    589    ring R=0,(x,y,z,u),dp;
    590    resolution T1=mres(maxideal(1),0);
    591    module M=T1[3];
    592    intvec v=2,2,2,2,2,2;
    593    attrib(M,"isHomog",v);
    594    def B=sheafCohBGG(M,-8,4);
     594  echo = 2;
     595  // cohomology of structure sheaf on P^4:
     596  //-------------------------------------------
     597  ring r=0,x(1..5),dp;
     598  module M=0;
     599  def A=sheafCohBGG(M,-9,4);
     600  // cohomology of cotangential bundle on P^3:
     601  //-------------------------------------------
     602  ring R=0,(x,y,z,u),dp;
     603  resolution T1=mres(maxideal(1),0);
     604  module M=T1[3];
     605  intvec v=2,2,2,2,2,2;
     606  attrib(M,"isHomog",v);
     607  def B=sheafCohBGG(M,-8,4);
    595608}
    596609
     
    606619  {
    607620    Betti = betti(R);
    608   } else
     621  }
     622  else
    609623  {
    610624    if(typeof(R)!="intmat")
     
    643657  int i, j;
    644658
    645   for (j=1; j<=row; j++) {
    646     for (i=l; i<=h; i++) {
    647       if( (n+2-shift-j)>0 ) {
    648 
    649         if (  (k+1-j-i+ell-shift>0) and (j+i-ell+shift>=1)) {
     659  for (j=1; j<=row; j++)
     660  {
     661    for (i=l; i<=h; i++)
     662    {
     663      if( (n+2-shift-j)>0 )
     664      {
     665        if (  (k+1-j-i+ell-shift>0) and (j+i-ell+shift>=1))
     666        {
    650667          newBetti[n+2-shift-j,i-l+1]=Betti[j,k+1-j-i+ell-shift];
    651668        }
    652669        else { newBetti[n+2-shift-j,i-l+1]=-1; }
    653 
    654670      }
    655671    }
    656672  }
    657673
    658   for (j=2; j<=n+1; j++) {
    659     for (i=1; i<min(j, iWTH); i++) {
     674  for (j=2; j<=n+1; j++)
     675  {
     676    for (i=1; i<min(j, iWTH); i++)
     677    {
    660678      newBetti[j,i]= -1;
    661679    }
    662680  }
    663681
    664   for (j=1; j<=n; j++) {
    665     for (i=iWTH; i>=k+j; i--) {
     682  for (j=1; j<=n; j++)
     683  {
     684    for (i=iWTH; i>=k+j; i--)
     685    {
    666686      newBetti[j,i]=0; // -1;
    667687    }
     
    673693    displayCohom(newBetti, l, h, n);
    674694  }
    675 
    676695  return(newBetti);
    677696}
     
    900919example
    901920{"EXAMPLE:";
    902    echo = 2;
    903    int pl = printlevel;
    904    int l,h, t;
    905 
    906    //-------------------------------------------
    907    // cohomology of structure sheaf on P^4:
    908    //-------------------------------------------
    909    ring r=32001,x(1..5),dp;
    910 
    911    module M= getStructureSheaf(); // OO_P^4
    912 
    913    l = -12; h = 12; // range of twists: l..h
    914 
    915    printlevel = 0;
    916    //////////////////////////////////////////////
    917    t = timer;
    918 
    919    def A = sheafCoh(M, l, h); // global Ext method:
    920 
    921    "Time: ", timer - t;
    922    //////////////////////////////////////////////
    923    t = timer;
    924 
    925    A = sheafCohBGG(M, l, h);  // BGG method (without optimization):
    926 
    927    "Time: ", timer - t;
    928    //////////////////////////////////////////////
    929    t = timer;
    930 
    931    A = sheafCohBGG2(M, l, h); // BGG method (with optimization)
    932 
    933    "Time: ", timer - t;
    934    //////////////////////////////////////////////
    935    printlevel = pl;
    936 
    937    kill A, r;
    938 
    939    //-------------------------------------------
    940    // cohomology of cotangential bundle on P^3:
    941    //-------------------------------------------
    942    ring R=32001,(x,y,z,u),dp;
    943 
    944    module M = getCotangentialBundle();
    945 
    946    l = -12; h = 11; // range of twists: l..h
    947 
    948 
    949    //////////////////////////////////////////////
    950    printlevel = 0;
    951    t = timer;
    952 
    953    def B = sheafCoh(M, l, h); // global Ext method:
    954 
    955    "Time: ", timer - t;
    956    //////////////////////////////////////////////
    957    t = timer;
    958 
    959    B = sheafCohBGG(M, l, h);  // BGG method (without optimization):
    960 
    961    "Time: ", timer - t;
    962    //////////////////////////////////////////////
    963    t = timer;
    964 
    965    B = sheafCohBGG2(M, l, h); // BGG method (with optimization)
    966 
    967    "Time: ", timer - t;
    968    //////////////////////////////////////////////
    969    printlevel = pl;
     921  echo = 2;
     922  int pl = printlevel;
     923  int l,h, t;
     924
     925  //-------------------------------------------
     926  // cohomology of structure sheaf on P^4:
     927  //-------------------------------------------
     928  ring r=32001,x(1..5),dp;
     929
     930  module M= getStructureSheaf(); // OO_P^4
     931
     932  l = -12; h = 12; // range of twists: l..h
     933
     934  printlevel = 0;
     935  //////////////////////////////////////////////
     936  t = timer;
     937
     938  def A = sheafCoh(M, l, h); // global Ext method:
     939
     940  "Time: ", timer - t;
     941  //////////////////////////////////////////////
     942  t = timer;
     943
     944  A = sheafCohBGG(M, l, h);  // BGG method (without optimization):
     945
     946  "Time: ", timer - t;
     947  //////////////////////////////////////////////
     948  t = timer;
     949
     950  A = sheafCohBGG2(M, l, h); // BGG method (with optimization)
     951
     952  "Time: ", timer - t;
     953  //////////////////////////////////////////////
     954  printlevel = pl;
     955
     956  kill A, r;
     957
     958  //-------------------------------------------
     959  // cohomology of cotangential bundle on P^3:
     960  //-------------------------------------------
     961  ring R=32001,(x,y,z,u),dp;
     962
     963  module M = getCotangentialBundle();
     964
     965  l = -12; h = 11; // range of twists: l..h
     966
     967  //////////////////////////////////////////////
     968  printlevel = 0;
     969  t = timer;
     970
     971  def B = sheafCoh(M, l, h); // global Ext method:
     972
     973  "Time: ", timer - t;
     974  //////////////////////////////////////////////
     975  t = timer;
     976
     977  B = sheafCohBGG(M, l, h);  // BGG method (without optimization):
     978
     979  "Time: ", timer - t;
     980  //////////////////////////////////////////////
     981  t = timer;
     982
     983  B = sheafCohBGG2(M, l, h); // BGG method (with optimization)
     984
     985  "Time: ", timer - t;
     986  //////////////////////////////////////////////
     987  printlevel = pl;
    970988}
    971989
     
    10031021  int Result;
    10041022  int n=nvars(basering)-1;
    1005   if ((i>0) and (i<=n)) {
     1023  if ((i>0) and (i<=n))
     1024  {
    10061025    list L=Ext_R(n-i,M,1)[2];
    10071026    def N=L[1];
     
    10191038      return(Result);
    10201039    }
    1021     else {
     1040    else
     1041    {
    10221042      return(0);
    10231043    }
     
    10261046example
    10271047{"EXAMPLE:";
    1028    echo = 2;
    1029    ring R=0,(x,y,z,u),dp;
    1030    resolution T1=mres(maxideal(1),0);
    1031    module M=T1[3];
    1032    intvec v=2,2,2,2,2,2;
    1033    attrib(M,"isHomog",v);
    1034    dimH(0,M,2);
    1035    dimH(1,M,0);
    1036    dimH(2,M,1);
    1037    dimH(3,M,-5);
     1048  echo = 2;
     1049  ring R=0,(x,y,z,u),dp;
     1050  resolution T1=mres(maxideal(1),0);
     1051  module M=T1[3];
     1052  intvec v=2,2,2,2,2,2;
     1053  attrib(M,"isHomog",v);
     1054  dimH(0,M,2);
     1055  dimH(1,M,0);
     1056  dimH(2,M,1);
     1057  dimH(3,M,-5);
    10381058}
    10391059
     
    11001120     N=L[j];
    11011121     attrib(N,"isSB",1);
    1102      if (dim(N)>=0) {
     1122     if (dim(N)>=0)
     1123     {
    11031124       for (i=l; i<=h; i++)
    11041125       {
     
    11121133example
    11131134{"EXAMPLE:";
    1114    echo = 2;
    1115    //
    1116    // cohomology of structure sheaf on P^4:
    1117    //-------------------------------------------
    1118    ring r=0,x(1..5),dp;
    1119    module M=0;
    1120    def A=sheafCoh(0,-7,2);
    1121    //
    1122    // cohomology of cotangential bundle on P^3:
    1123    //-------------------------------------------
    1124    ring R=0,(x,y,z,u),dp;
    1125    resolution T1=mres(maxideal(1),0);
    1126    module M=T1[3];
    1127    intvec v=2,2,2,2,2,2;
    1128    attrib(M,"isHomog",v);
    1129    def B=sheafCoh(M,-6,2);
     1135  echo = 2;
     1136  //
     1137  // cohomology of structure sheaf on P^4:
     1138  //-------------------------------------------
     1139  ring r=0,x(1..5),dp;
     1140  module M=0;
     1141  def A=sheafCoh(0,-7,2);
     1142  //
     1143  // cohomology of cotangential bundle on P^3:
     1144  //-------------------------------------------
     1145  ring R=0,(x,y,z,u),dp;
     1146  resolution T1=mres(maxideal(1),0);
     1147  module M=T1[3];
     1148  intvec v=2,2,2,2,2,2;
     1149  attrib(M,"isHomog",v);
     1150  def B=sheafCoh(M,-6,2);
    11301151}
    11311152
     
    11701191  string Row="    ";
    11711192  string Row1="----";
    1172   for (i=l; i<=h; i++) {
     1193  for (i=l; i<=h; i++)
     1194  {
    11731195    for (j=1; j<=maxL-size(string(i)); j++)
    11741196    {
     
    12771299example
    12781300{"EXAMPLE:";
    1279    echo = 2; int pl = printlevel;
    1280    printlevel = voice;
    1281 
    1282 
    1283    ////////////////////////////////////////////////////////////////////////////////
    1284    ring r;
    1285    module M = getStructureSheaf();
    1286    "Basering: ";
    1287    basering;
    1288    "Module: ", string(M), ", grading is given by weights: ", attrib(M, "isHomog");
    1289 
    1290    def A=sheafCohBGG2(M,-9,9);
    1291    print(A);
    1292 
    1293    ////////////////////////////////////////////////////////////////////////////////
    1294    setring r;
    1295    module M = getStructureSheaf(ideal(var(1)), 0);
    1296 
    1297    "Basering: ";
    1298    basering;
    1299    "Module: ", string(M), ", grading is given by weights: ", attrib(M, "isHomog");
    1300 
    1301    def A=sheafCohBGG2(M,-9,9);
    1302    print(A);
    1303 
    1304    ////////////////////////////////////////////////////////////////////////////////
    1305    setring r;
    1306    def Q = getStructureSheaf(ideal(var(1)), 1); // returns a new ring!
    1307    setring Q; // M was exported in the new ring!
    1308 
    1309    "Basering: ";
    1310    basering;
    1311    "Module: ", string(M), ", grading is given by weights: ", attrib(M, "isHomog");
    1312 
    1313    def A=sheafCohBGG2(M,-9,9);
    1314    print(A);
    1315 
    1316    printlevel = pl;
     1301  echo = 2; int pl = printlevel;
     1302  printlevel = voice;
     1303
     1304
     1305  //////////////////////////////////////////////////////////////////////////////
     1306  ring r;
     1307  module M = getStructureSheaf();
     1308  "Basering: ";
     1309  basering;
     1310  "Module: ", string(M), ", grading is given by weights: ", attrib(M, "isHomog");
     1311
     1312  def A=sheafCohBGG2(M,-9,9);
     1313  print(A);
     1314
     1315  //////////////////////////////////////////////////////////////////////////////
     1316  setring r;
     1317  module M = getStructureSheaf(ideal(var(1)), 0);
     1318
     1319  "Basering: ";
     1320  basering;
     1321  "Module: ", string(M), ", grading is given by weights: ", attrib(M, "isHomog");
     1322
     1323  def A=sheafCohBGG2(M,-9,9);
     1324  print(A);
     1325
     1326  //////////////////////////////////////////////////////////////////////////////
     1327  setring r;
     1328  def Q = getStructureSheaf(ideal(var(1)), 1); // returns a new ring!
     1329  setring Q; // M was exported in the new ring!
     1330
     1331  "Basering: ";
     1332  basering;
     1333  "Module: ", string(M), ", grading is given by weights: ", attrib(M, "isHomog");
     1334
     1335  def A=sheafCohBGG2(M,-9,9);
     1336  print(A);
     1337
     1338  printlevel = pl;
    13171339}
    13181340
     
    13481370  return(M);
    13491371}
    1350 
    1351 
    1352 
    13531372
    13541373
  • Tst/Manual/truncate.res.gz.uu

    r9bebec r4d8049f  
    11begin 640 truncate.res.gz
    2 M'XL("!**<TX``W1R=6YC871E+G)E<P!UDU%OFS`4A=_Y%5?1'D!R"(:N[=;A
    3 MAZK25FF9JK;/K0@XP5*`"$P*_/I=@S$!M8H5R.7S\<VYAY?7A\=_`$`9_'V\
    4 MAY6LI'L4N]4=X-V[R(6TG3M+78$QD&6=QY'D;LX_W$I&TGK1^WV]OTIYM(^+
    5 M=!`QCP,&I<@/\!QZQ&Y(2SJ')*?I^16#K$CJ(X=MF$6-2'ATM`-G`KXS2(NL
    6 M.-A;+%)3OF:PV4!<9*=:<CB5O.(YMB6*'+)(EJ*!?5&:MI/Q$/MY\ZOO@KT%
    7 MSKO-0M\QDC>N:<4/QYWVEO@7W=PR/$ODTMZJ:D<\\VD)>&KIKT;_-,ORR(2O
    8 MNX'7,%Z:)7R)0\]/\)RWANJ(#T4MO^X6O#5J=A>PEA\.6K>F'VOZ>YV!M;SI
    9 M=MC2@/'H!X-$9+_+*.')4U0JKPA%M[R1H-XGA/+SVA"T'Z],10556M3'!$<M
    10 M\ACC`1]"IC\-Z+M+J852T"M5J=A+.""FPKAK@4X25R[@1,\\AG-(S:@I!B^2
    11 MF*0=2JY$]4>%<$7.4Q@H9O#+I-";65*43ZWRN?.U<VWO:(/.]Y4&+?2)A829
    12 L[`)5-V/%:N<A,.AL@9D)O?W$\6#F$TY-O?CJW:XK&^?US?H/3J";#R,$````
     2M'XL("*4Z/F`"`W1R=6YC871E+G)E<P!UDU]OFS`4Q=_]*:ZB/1C))1BZMEN'
     3M'Z9)6Z5EFMH]KR+@!$L!(C`I\.EWS1\#4:=8`2X_'R[G'E[^?'OZ!0!<P,^G
     4MK[#1E79/:K]Y!#Q[5;G2U'DDY@A"@"[K/(ZT='/YYE8ZTN1EW.^/^ZM41H>X
     5M2`<1>SL04*K\",^AQVC#6M8Y+#G/]V\%9$52GR3LPBQJ5"*C$PV<&?@H("VR
     6MXDAW6.2V?"=@NX6XR,ZUEG`N925S;$L5.621+E4#AZ*T;2?30^CS]DO?A?@;
     7M.*]4A+YC)>]=VXH?3COICOF+;AX$/DOEFNY,M6.>_;4,/+/&OV:\M(MX;,9O
     8MNH$?83PTU_`2AYZ?X35/ANJ$#\51'C?>M$M],FEV"WB4'RX7/)E?K[/P*&^[
     9M'1[1@/7HDX!$9=_+*)')[Z@T7C&.;GD3P;UW"./GG25X/UZ=J@JJM*A/"8Y:
     10MY3'&`]Z43C];T'>OI:Z4@EZI2M5!PQ$Q$\9]"WR6N'4!)WJ1,5Q";D?-,7B1
     11MQB3M47*CJA\FA!MVF</`,8/_30J_7R5E\!6MZOS1N;9WM$'G^TJ#%OJ,(&$G
     12K>X6:DZE"VG4(++I:8&?"']YQ/%CYA%,S'[[YMNN*XKP^D'_R%6<I(P0`````
    1313`
    1414end
  • Tst/Manual/truncate.stat

    r9bebec r4d8049f  
    1 1 >> tst_memory_0 :: 1316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:243808
    2 1 >> tst_memory_1 :: 1316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:666332
    3 1 >> tst_memory_2 :: 1316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:699116
    4 1 >> tst_timer_1 :: 1316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:11
     11 >> tst_memory_0 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:206280
     21 >> tst_memory_1 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:2150192
     31 >> tst_memory_2 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:2191296
     41 >> tst_timer_1 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:8
  • Tst/Manual/truncateFast.res.gz.uu

    r9bebec r4d8049f  
    11begin 640 truncateFast.res.gz
    2 M'XL("-!ZN4X``W1R=6YC871E1F%S="YR97,`K9AK;YM(%(:_\RN.K'[`*CAF
    3 M2)K;0J6VZD7:5%6SG[<BAL1H8SLR@P/\^IWQF&'N4.T*(EOAY<S[S!D.<WS_
    4 MUZ=OWP$@2N'/;Q]@ABN\>"X?9K=`OOTJMR7VY[<>_80T!;ROMZL,%Y\S(ML6
    5 MKXL*9]B[/\5`IQC5NL@>5[LU"\0OQRGLR^T3_$R6@=\$;=`%=7"8!_G+H#E/
    6 M8;/+Z^<"[I)-UI1YD3W[\7P07*2PWFUV3_X=^6?$__TNA;,S6.TV+S4NX&5?
    7 M5,666"MW6]AD>%\V\+C;<_MY/XC_\^R/DY/T[WC^RT\3-.=!+Q=0;C'@!)>;
    8 M8C]XN!I,(G+Q%-2_"Y!@])K,%B1PO!5"P/Q*M#QZG9&_^W+S0J+T$6Y@%HC"
    9 M:*&-'2%A[$1,AU_AG$R*Z"&*K1[.N0=ZK]7!Q8+,)9D#_XZ&/01+QU$'L)1.
    10 M_>ADB0?6.UHUF/&D1^,*J)_>,G!AA`>%PW1`YQI34D[@."D;:T`CA!N#RFJS
    11 M)<XI<K@A)G`,RN:W(%P8(',X)-T8!,,=XY!B-K\#8<<8Q/4(!.,8S<08AX3+
    12 M9J6QBA4(&P:(`>L1"#9FIYDR*BT<JI+-BI/#$\<P88#,8<(`9>+"6BQ95@@+
    13 MAQG"R>')H^@8('.8,-1,\*6E0XBX(8VD<U@A[!R>ZDC%&,1A?TG%,$/T'*Y,
    14 MF/*AXK*`C-C"H4&H&,9YJC6);<QN`H3,X<J$A<,`(6,8(60,:<7Q,7N.3E'J
    15 M*XI^Z?C[?!Q"XS!"B!@6"!%#6G'BF"'3=+9@QGRHN-JL4&*9PP(Q8%@A!@SK
    16 M,\'OZ&2E+1E'CDF9D/-AA>@Q'!`]QCA$CR'ES,+1*KA::@?BL&5;10<$PW!"
    17 M,(PI$`QC9#F=]*V:"4?F*`?P#3KI>^@F_N.Z6/US0]L12!+R\?ZXD:_*KO"_
    18 M?R:;=_*==@<(S^=S>"M<P/T5<N'6,T>")1_N,H6\W'S99WF1_\CVM"\((G+C
    19 MH+@R*&CO$%UPR?6Q]\#KLH)JO:N?<]*WE=L5Z?7@M<3KFUZ(E@LUEA(*1<=0
    20 MU;I\Q/!$=+2]?&@A&F*@8P]W*%9P2"+>V"#2&668](4/).:LK+[2EG)&FM%!
    21 M03HDM?E"I/FT=WSHG:W;0I<3.SYTI7=\Z#J=T.K%2]O@<32IU8N1U.K5_8Z!
    22 MOX#$HGQ`$Y?V>&T9.SVQ4QDU4QL>X.&L4?!?G+`2PQ_'Z68ZDROBI.[%G594
    23 M.M<,>T-M./H)A4HST4PK;W39Y(AF6L$2,]/VH[1#V,&);BF4JYK;3"._2'4S
    24 M#=\X]68:]B)#04,J(N+K./X_*R)Y<M[;JB+B12\^-Q2]6*I4,2D=]`<U^GM9
    25 07?FD9K[Q_@6`14/=>Q,`````
     2M'XL("*4Z/F`"`W1R=6YC871E1F%S="YR97,`K9AM;Z-&$,??\RE&5E]@%1Q8
     3MDLM3X:2VNO:DYE1=^KHG8DB\:FQ'9N%@/WT'8Q86[RX;M8+(Q`RS_]_.[C#C
     4MQ[]^_?P%`,($_OC\,RQ8P5:O]&EQ#WCUC>XH<Y?W3OL)20+L4.[6*<L_I6BV
     5MR[^O"I8RY_'D@YQ\%)L\?5[O-YTC<3M*X$!W+_`U#CRW]AJ/>Z57+;WL;;"Y
     6M3&"[S\K7'![B;5K3+$]?W6@Y&%PEL-EO]R_N`WX9BJ\_)'!Q`>O]]JUD.;P=
     7M\B+?H32ZW\$V90=:P_/^(.1G_2#NUXN?3DJ2OZ/E-S>)R5(XO5X!W3%@,:/;
     8M_#!HN!E$$KQY<NH^>&0D]!9G"V(X/@H^,'$G#(Y:%_CW2+=OZ*7W<`<+;VP8
     9MKL[&#LEH['@<#K=@&4[*6$,8:35<"@WMLUH%5RN<2YP#]Z%U6WF!X2@]"*3S
     10M_."RB0/:)YJI,^79'K7)X?GI!)X)PZ\F'*H#N!T$_MO80>!%_3X(,T9K5IH@
     11MD-,OAWB8(2PX!LOZ71`F#)`Y#"9\#J+#];EY74D^Z_=`Z#%`YC";<(M(S,5#
     12MPO4;#QW6MA`Z#/"K<3S,$%TDN`6$GF-JV<U*;0FAQ@"9H[2`&&\1@Z6&0PUA
     13MY'#D42J=PIY#A:%.L7P.0K,_M!!Z#F>JJ-(J]"OQ\K"!Z#E,D5#%0PTAMDAM
     14M`S'%4,Y3J5]Q8LR>8QY"YC!%0A,/1[53JSD(&4-:<6+,GH/;0(S6U3S$&8>C
     15MSIK5',080UIQXS']\E28S$*,XC$/<;:N'-U+KIJ#&##F:R>NSA+2PO-Y5Y=8
     16M14*.AZ,O.*HYB![#I@#DJBRAY&CL(?IX.*8:MIJ#Z##LJECN!995;#.%,$2N
     17MY0!1H&/?TQ;QOVSR]3]W;3L"<8P?'X^%?$%Y[G[YA,4[7K?=`6'+Y1)^'-U@
     18M_1V\<>^H/4$@AKM.(*/;WPYIEF=_IH>V+_!"?'"PN%%8M+U#>"5,;H^]!]O0
     19M`HK-OGS-L&^CNS7V>O"=LLU=;TB"U=37Q!4)CZZ*#7UF\()V;7OYU$`X^"#'
     20M'J[*UU#%H6AL"'9&*<.^\`E]+FCQ>]M2+K`9'2RP0YHV7P2;3WW'1S[HNBUR
     21M;=GQD9OSCH_<)A:M7A3H!H]"JU8O(E*K5_850Z-*RA6Q7-KV+8VV(NJV@J68
     22MLC()*XGW7Y1TF4AL1WLQ7*4*E92],3]+*MPTP\XX,W953/!.,<U(4C<G$S'-
     23M2%(GINE':0:WCB+/CGJ/P%I,+9<7YV)J43CU8NKN14:\&C,B$>LX^C\S(NZ<
     24GC[JL2$32BRX522^2,E6$J:/]0:W]O:PL7,R9/SC_`@7;Q+I[$P``
    2625`
    2726end
  • Tst/Manual/truncateFast.stat

    r9bebec r4d8049f  
    1 1 >> tst_memory_0 :: 1320778391:3133- exportiert :3-1-3:x86_64-Linux:wawa:378224
    2 1 >> tst_memory_1 :: 1320778391:3133- exportiert :3-1-3:x86_64-Linux:wawa:672688
    3 1 >> tst_memory_2 :: 1320778391:3133- exportiert :3-1-3:x86_64-Linux:wawa:748768
    4 1 >> tst_timer_1 :: 1320778391:3133- exportiert :3-1-3:x86_64-Linux:wawa:3
     11 >> tst_memory_0 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:272512
     21 >> tst_memory_1 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:2183168
     31 >> tst_memory_2 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:2236416
     41 >> tst_timer_1 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:9
  • Tst/Short/sheafcoh_s.res.gz.uu

    r9bebec r4d8049f  
    11begin 640 sheafcoh_s.res.gz
    2 M'XL("'(8"TX``W-H96%F8V]H7W,N<F5S`.U<;7.;.!#^[E^AR?0#3L$%`0:G
    3 M9\^T=Y/6<^=+I^G<EUR;(3&)F=B0`=S:_?6W*X&0`;\EI"]7.[9B6ZN5M,^N
    4 M]I$@.?_PQ_!O0H@Q('\-7Y.C-$D[T^#JZ&7K/*NA`P)?7@9AD"KMERW\308#
    5 MDDQ\[^8ZFEPFG=#_TDE2+Q5-S`$1[ZT.X9KS!B7UMB3;[9`7+\B?T22:1=/H
    6 M-O#)V(_)>1K/[])Y?.O%5S[Y'(7DW2?[1#1RL)&VXT.T<CLD#L);$O=U=:$8
    7 MG4ZWK8[OBV'U!F06C>=3GXSZNOC:T`<PI!ORJL]F\WLT44:J9NBJ#98A[`&?
    8 ML.QAX6+A8-'%PL;"PL+$@C)I;(,M"'N'WQ&L)2A'[-:N$]OG`2.U3Z!#BJ.R
    9 ML:"L\ZX8AK9_`4JMDP>VW:34?`JE]"F4&D^A5'^@4@$H@Q9!9G!3FSZ-2UU/
    10 M@A/P9NQ#P]XTUB_W^\+'ZXH-(\VC#A:G:L2I1TGL)T>'P#L$WB'PGBCP*$]W
    11 MKT7PO7[SYE?,>,=UA0B\XT>X6HU2\V3UN\=K%H%7ZNU1FD7@U1GGH9I%X-5:
    12 M?&/;[Q)XFT:Z.?#J72H//&#0XR"YGWK+WY$-*Z^RG/=+1=VZI?F0[II7>DAW
    13 M\-DJ1=WK7S'J#KFNJOF0ZYXPU]F#NE.?6S_]$B2IG_KAEA,@H[O/"=#*O'(-
    14 M3H=X:1H'5T!NCX+D+8SD]D@-PO2S?ZUHM-TN3H#<FKVHV>CZT""$V5KP@^7=
    15 M!K-M@SFVP<RZ=S[])O&<17&C&;-7%PU/<3)S"(I#4/PD04'U0>V)R?\L2S3-
    16 M$YMFATUSPJ:9X/[\[UL&Q.Y<;SO#HT:5X06Q?Y?BQ;WY;`8,KV![I>M]887N
    17 M4?I0NK<RS5R;V2$S#ZC?@HQ&%^;'"^.CX'H4]H.C_FA4?`%4=0-/-%1=E;DB
    18 M[9:S8T_:2OZPN\AL.3!I#\DY=M3%@M+<_?9,ETV?V#1]6-/T.4W31S0/2YSH
    19 M4A0+Q\5="Q1F#P!U'+UQ?^%G,N@O&O,7#?U%8_Y2FU&WC2\/'Z<:/E:96S81
    20 M1<VGTB9BY\`MOTN(-)Y*&PD,$1-N#;=T)6KY'0EE?O"XB]LW0QZ;H8S-$,5F
    21 MZ.%>I+#671X/XQX$<#/MZU5H'W*Y,SQ0>PZET7ZNG+U8*$:[#2_2)V>7-JN+
    22 M\#?4GEU:4"&(GZDW0?RT@ON91@=('[\!K*T6=WF9M,3[3',C[Z.J`1L\B?B9
    23 M5CESN:K50(ABT5"VRO=\S'\>??[AX$A-G(>!!;'W4MI,>FHF,S63E';,1W4!
    24 M[.!Z#T@[5D.I*(]GMB*;5@U&:W.//);<M>T:UZZ2LH.''SQ<6.@G\_#N#T^Q
    25 M=O+I[11K%W?^=2G6>G?Y5A1K^\F:"5ODNV`Z)7'!/=SBAGJS5WM#_7#L>U-^
    26 M+14__N/'4>@G/CF=>O[UQ"=!2)[]^^Z3^4Q0+^O1U$MH`L[%[[P_!\9G4ETW
    27 M5;)0]$[':JM$N@/?`A(F;L$?]F?>(L!A`U,K1("6"5XVK#N0`TY&A#4L8&4$
    28 M\E0TG:<!$-&[*($AA/`-MM8EO9#CR#T,,E6N_#0-%)!LJT?LO93D!$X<*![C
    29 M/(7QD[F]CN90J\8=.]/'8U(O2OX-,?;1FD:I-]U-JYA^%RW/ST2]Z?W$T\%,
    30 ML1>.HYF"@`'=Y1<S<GFG0.H>K`G2_)/"6[>?@_TNS.)<U7(+W+!!%3E#K?Q(
    31 M]-KJK0)Y<QW=^7'H3[%GA),IE0"U]1*@HL7NL&XQ.FN=P>?L#9D,4UUK,1&C
    32 M,/4XB&&^*0"3W$>)SR8M39D6-@;)VM/J[$FSIVAJ=LC&AV@A/25X[%*<W?"1
    33 M,F1P*%02+4<:RNZ"R5I[LC#B"2:SH</'+,>7)I>L#[U:L1XS":V5/B2<,(38
    34 M>D6&,/7;./*O0C]6;J8`B1^R:5[0C[+1G%6CG0YSDZTL3;9;,MCI<-^5::?5
    35 M0S:*4;699+DZDU:$J"RT?WA4@\18JTE8JE>$RFG_=`CF%E;LXGH@[6).5<V2
    36 M-NC(Y323,SE&Y/2L1YI9<?<=2LZWM&VOC%?AE3TV(7.#(-U5H[%.T"@)ZMLT
    37 M.GCQ:_=9\X-/F`R[TLUHL<Y?PIY<8PZ(40=(Y3Z2`R[?&A?,(JN;(08-W0&3
    38 MK:/:AH'8:QROLWUN\^/LM=;6QS5"AFSCXS5"VO999%R^K"&WJ>#J762KX@/^
    39 M6>PXF+U53!4M"CRU10U1BVF1U1I0BXRWJ.H6]+[K=,I18S#I#!H!1V42%=/G
    40 MIE[OSF6W-2KN6>TE,XUP,3%PS&)LWW)>K,F]8F(.VVZ07=U:ZC%78#`%'_PD
    41 M)=$-D*1Y>.VEOMC/.)11'+8/>=_7566A+M6O*W\!["!<Q0ZDOZ#JTE2_6H6`
    42 MQ01P:W6KC&2,')O5P`"NH]G]/.6TV`]3CZ7VC%K?1+$8V#CO1WG_XK>\IT'[
    43 M4AGT:5NH[7;D$=%^WEH9R9S*<5COG"2,L&*I$AV?4"RRM^S35^!\VE=UF=5)
    44 MU>QS"UZL.F_!JT4=>RZ93%Z]6L<KH-10!]06_N^X;)#@XV]B;^R/WWDQ#I9Y
    45 MK[@`[/3JA)B,F<NX>KTBG+=8QEPC!R2=!`E))M%\.@9P@O`:2!KY$J03X1HN
    46 M=XURIZOZS-J!X9ZH*V2LO,]D$MRDP`&],;K;U1)IJ)"R66^<DY//?<T0.+I=
    47 MIJ#FNL/G`FR7@[W6&5RW[`P9W@)R!$;R"5UM,>"6LD3),UJZ6G:-DG^TBK;+
    48 M%6<07B))2+WE0HM5B=7>F!#("&=R:_V$^X#`HZ<7ZTL/E@?\GP;X3POF"1XI
    49 ,/&O]!X<-&JP)00``
     2M'XL("*DZ/F`"`W-H96%F8V]H7W,N<F5S`.U<;7.;.!#^SJ_09/H!N^""`(/3
     3MLV?:NTGKN?.UTW3N2Z_-$)O$3&S(`$[M_/K;%2!DC-\2G*97.[9LH]5*[+.K
     4M?21PSC__T?^;$*+WR%_]M^0DB9/6Q+\\>2V=9S6T1^#@A1_XB=QX+>$[Z?5(
     5M//;<JV$XOHA;@?>]%2=NPIL8/<(_FRV2:LX;E-1;@FR[15Z](G^&XW`:3L)K
     6MWR,C+R+G232[26;1M1M=>N0N#,C';]8I;V1C(W7'!V_EM$CD!]<DZFK*7-9;
     7MK79#&=T6P^KTR#0<S28>&70U?EC7>C"D*_*FR\[F]W`L#Q15UQ0++$/8`[YA
     8MV<'"P<+&HHV%A86)A8$%9=+8!EL0]@F/$:PE*$<L23W``T9JG4*'%$=E84%9
     9MYVT^#'7_`I2:IP]LNTFI<0BE]!!*]4,HU1ZHE`/*H$60&=S4HH=QJ>'8/P5O
     10MQCY4[$UE_:9^7_AX5;%AI'G4P>2T&G'*21QY\<DQ\(Z!=PR\`P4>3=/=6QY\
     11M;]^]^Q4S7K.JX('7?(2K52@U3I>//5XS#[QFC9IYX#5KU,P#K[FWYA\2>)M&
     12MNCGPJETJ#SQ@T",_OIVXB]^1#<MOLIQWY)G'='=,=X=*=V8IZM[^BE%WS'7'
     13M7/>DN<[J5>WZ7'O)=S].O,0+MNP`Z>U]=H"J=H-TNT7<)(G\2R"W)W[\'D9R
     14M?:+X07+G#665-AK%#I!3L18U:IT?I-KG@F>6=VO,MC7FV!HSZ][Y]$GB.8OB
     15M6C-FIRH:#K$S<PR*8U#\)$%!M5[ECLG_+$O4S1/K9H=U<\*ZF>#^_.\I`V)W
     16MKK>=X5%]E>'YD7>3X,6]V70*#*]@>Z7K?<$*W:/TH72OBOI1HT6F+E"_.1D,
     17MOAA?O^A?.=>CL!X<=`>#X@!0U0T\45<T1>2*M%W.CAUA*?EL5Y'9=&#0#I)S
     18M[*B-!:4/3)=U[]C4O5E3]SY-W5LT#TN<Z%(4"]O!50L41@<`M6U-.LR>#/J+
     19MROQ%17]1F;]49M1MX\O#QUX-'[/,+>N((NE9QLZ16_Z0$)&>96#PF'`JN*4C
     20M4,L?2"CSC<==W+X>\E@/9:R'*-9##_<BA97N(CTE`=Q,^SHKM`^YW`?<4'L)
     21MI=YX*7]X-9?U1@->I$L^7%BL+L1WJ/UP84(%)WZ&5@?Q$[B?H;>`]*4W@#64
     22MXBXO@Y9XGV%LY'U4T6&!)Q`_PRQG+D<Q:PC1&K-5ON9C_O/H_0\;1VK@>>@6
     23MXZ3[9KH:TE,]F:F>I+1C/JH*8!OG>T#:-FM*17D\LQG9,"LPTG892^[:5H5K
     24MKY*RHX<?/?QG]?#VLZ=8._GT=HJUBSO_NA1KO;L\%<7:OK-FP!+YQI],2%1P
     25M#Z>XH=[H5-Y0WQ]Y[B2]EHI?__&B,/!BCYQ-7&\X]H@?D!?_?OQFO.#4RWPT
     26M]>*:@'.E=]Z?`^,SJ*89"IG+6JME-A0BW(%O`@GCM^#WNU-W[N.P@:D5(D#+
     27M."_K5VW("9S,!$Y&($N%DUGB`PV]"6,80`!'L*TF"$*&([<PQ$2^])+$ET&R
     28MH9RPST**XRBE,*41GB:P=%]NKXTYB<T9IX*^-"*UHDR/$'T?K4F8N)/=M/+3
     29M;Z/=TQU1=W([=C4P4^0&HW`J(UQ`=M-+&;F\7>!T"]8$Z?2;G+9NO`3[?3&*
     30M7573*5##!JNXZ<K*GPAD9QG(JV%XXT6!-\&>$4ZF5`#4TDJ`\A:[PRIMAR^;
     31ME;*I>1_(1)CL#=!8>F'JD1_!^28`3'P;QAX[:>&4:6%CD*S<J\Z>-'ORID:+
     32M;'SP%L)3@,<JQ=E5.E*&#`Z%"J+E2$/973"1-H91FEXR&]HDIRL\OE2Q9'UH
     33MJQ7K,1/06NI#P`E#B,U6I`^G?AV%WF7@1?+5!"#Q`G::7^A7T6CVLM'.^KG)
     34MEJ8FRRD9[*R_[\PD[3H;Y4;15VTF6*[*I"M"5!2R'SBCK<YE&T.E4X3*6?>L
     35M#^;F5FSC?""L8<X4U126Y\CD5"/E<8S&:5F/-+/B[NN3G&VIVUX9J\+K>NR$
     36MC`V"=%>-^CI!O22H;=-HXZ4O:<]M3S@9=IV;D6(M?7%[IAIS0/0J0%;N(CGB
     37M\M2X8!997@HQ:.@.F$B/Q8"O-)KK;)_;O)F]UMJZ62&DBS9NKA%2I5V9?%E#
     38M;E/.U-O";V+;^)O8D3]]+QL*&A3,275>B4F15>I0B6RWJ&H+.NQ6.69T)IW?
     39M89*#(6TU?&[H]<Y<=EI]Q3FE=8;A#L8'CCF,K5G.BQFY4YR8S98:Y.$K#%MG
     40M"CY[<4+"*Z!(LV#H)AY?R]B4$1RV!OG4U11YKBR4^Z5?_]JXL"A6']TY51:&
     41M<F\6`B83P&75M3P0,;(M5@,#&(;3VUF2DF(O2%R6V#-B?15&?&"CO!_YTZO?
     42M\IYZC0NYUZ4-KK;=$D=$NWEK>2`R*MMFO:<488`5"X5H^(1BGGUDW^Z!\:GW
     43MRB*K$ZK9=PE>K#IOD5;S.O9<,!EUD2I?KH.*]".KAEI2(.RP08*/OXO<D3?Z
     44MZ$8X6.:]_.*OW:D28C)&+N-HU8KPO/DDYN@Y(,G8CTD\#F>3$8#C!T.@:.2[
     45MGXRY:SBI:Y0[7=9G5`X,5T1M+F/F?<9C_RH!!NB.T-TN%TA"N93%>DL9.;GK
     46MJCK'T6DS!177'.X*L)T4[+7.X#AE9\CPYI`C,()/:(K$@%N($B7/D-B1)=<H
     47M^8=4M%T4SB!ZB2"QW%ON*Z+$BB/BH3EW)J>SW@<X'AVMF%\Z,#W@_S/`?U@P
     48/BW$[X87T']KSB9`%00``
    5049`
    5150end
  • Tst/Short/sheafcoh_s.stat

    r9bebec r4d8049f  
    1 1 >> tst_memory_0 :: 1309347710:3132- 14004 :3-1-3:ix86-Linux:mamawutz:2593328
    2 1 >> tst_memory_1 :: 1309347710:3132- 14004 :3-1-3:ix86-Linux:mamawutz:4280320
    3 1 >> tst_memory_2 :: 1309347710:3132- 14004 :3-1-3:ix86-Linux:mamawutz:15377812
    4 1 >> tst_timer_1 :: 1309347710:3132- 14004 :3-1-3:ix86-Linux:mamawutz:1724
     11 >> tst_memory_0 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:6301780
     21 >> tst_memory_1 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:16683008
     31 >> tst_memory_2 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:30428076
     41 >> tst_timer_1 :: 1614690981:4201, 64 bit:4.2.0:x86_64-Linux:nepomuck:383
  • kernel/ideals.cc

    r9bebec r4d8049f  
    588588*works always in a ring with ringorder_s
    589589*/
    590 static ideal idPrepare (ideal  h1, tHomog hom, int syzcomp, intvec **w, GbVariant alg)
    591 {
    592   ideal   h2;
     590/* construct a "matrix" (h11 may be NULL)
     591 *      h1  h11
     592 *      E_n 0   
     593 * and compute a (column) GB of it, with a syzComp=rows(h1)=rows(h11)     
     594 * currRing must be a syz-ring with syzComp set
     595 * result is a "matrix":
     596 *      G   0
     597 *      T   S
     598 * where G: GB of (h1+h11)
     599 *       T: G/h11=h1*T
     600 *       S: relative syzygies(h1) modulo h11
     601 */
     602static ideal idPrepare (ideal  h1, ideal h11, tHomog hom, int syzcomp, intvec **w, GbVariant alg)
     603{
     604  ideal   h2,h22;
    593605  int     j,k;
    594606  poly    p,q;
     
    596608  if (idIs0(h1)) return NULL;
    597609  k = id_RankFreeModule(h1,currRing);
     610  if (h11!=NULL)
     611  {
     612    k = si_max(k,(int)id_RankFreeModule(h11,currRing));
     613    h22=idCopy(h11);
     614  }
    598615  h2=idCopy(h1);
    599616  int i = IDELEMS(h2);
     617  if (h11!=NULL) i+=IDELEMS(h22);
    600618  if (k == 0)
    601619  {
    602620    id_Shift(h2,1,currRing);
     621    if (h11!=NULL) id_Shift(h22,1,currRing);
    603622    k = 1;
    604623  }
     
    619638  //}
    620639
    621   for (j=0; j<i; j++)
     640  for (j=0; j<IDELEMS(h2); j++)
    622641  {
    623642    p = h2->m[j];
     
    649668    else
    650669      h2->m[j]=q;
     670  }
     671  if (h11!=NULL)
     672  {
     673    ideal h=id_SimpleAdd(h2,h22,currRing);
     674    id_Delete(&h2,currRing);
     675    id_Delete(&h22,currRing);
     676    h2=h;
    651677  }
    652678
     
    718744  si_opt_1|=Sy_bit(OPT_REDTAIL_SYZ);
    719745
    720   ideal s_h3=idPrepare(s_h1,h,k,w,alg); // main (syz) GB computation
     746  ideal s_h3=idPrepare(s_h1,NULL,h,k,w,alg); // main (syz) GB computation
    721747
    722748  SI_RESTORE_OPT1(save_opt);
     
    870896    s_h1 = h1;
    871897
    872   ideal s_h3=idPrepare(s_h1,hi,k,&w,alg); // main (syz) GB computation
     898  ideal s_h3=idPrepare(s_h1,NULL,hi,k,&w,alg); // main (syz) GB computation
    873899
    874900  ideal s_h2 = idInit(IDELEMS(s_h3), s_h3->rank);
     
    11111137  else
    11121138  {
    1113     s_h3 = idPrepare(s_mod,(tHomog)FALSE,k+comps_to_add,NULL,alg);
     1139    s_h3 = idPrepare(s_mod,NULL,(tHomog)FALSE,k+comps_to_add,NULL,alg);
    11141140  }
    11151141  if (!goodShape)
     
    21462172}
    21472173*/
    2148 /*2
    2149 * represents (h1+h2)/h2=h1/(h1 intersect h2)
    2150 */
    2151 //ideal idModulo (ideal h2,ideal h1)
    2152 ideal idModulo (ideal h2,ideal h1, tHomog hom, intvec ** w, matrix *T, GbVariant alg)
     2174
     2175#ifdef HAVE_SHIFTBBA
     2176ideal idModuloLP (ideal h2,ideal h1, tHomog hom, intvec ** w, matrix *T, GbVariant alg)
    21532177{
    21542178  intvec *wtmp=NULL;
     
    21912215    //Print("weights:");wtmp->show(1);PrintLn();
    21922216  }
    2193 #ifdef HAVE_SHIFTBBA
    2194   if (rIsLPRing(currRing))
    2195   {
    2196     for (i=0;i<IDELEMS(h2);i++)
    2197     {
    2198       temp->m[i] = pCopy(h2->m[i]);
    2199       q = pOne();
    2200       // non multiplicative variable
    2201       pSetExp(q, currRing->isLPring - currRing->LPncGenCount + i + 1, 1);
    2202       p_Setm(q, currRing);
    2203       pSetComp(q,i+1+length);
    2204       pSetmComp(q);
    2205       if(temp->m[i]!=NULL)
    2206       {
    2207         if (slength==0) p_Shift(&(temp->m[i]),1,currRing);
    2208         p = temp->m[i];
    2209         temp->m[i] = pAdd(p, q);
    2210       }
    2211       else
    2212         temp->m[i]=q;
    2213     }
    2214   }
    2215   else
    2216 #endif
    2217   {
    2218     for (i=0;i<IDELEMS(h2);i++)
    2219     {
    2220       temp->m[i] = pCopy(h2->m[i]);
    2221       q = pOne();
    2222       pSetComp(q,i+1+length);
    2223       pSetmComp(q);
    2224       if(temp->m[i]!=NULL)
    2225       {
    2226         if (slength==0) p_Shift(&(temp->m[i]),1,currRing);
    2227         p = temp->m[i];
    2228         while (pNext(p)!=NULL) pIter(p);
    2229         pNext(p) = q; // will be sorted later correctly
    2230       }
    2231       else
    2232         temp->m[i]=q;
    2233     }
     2217  for (i=0;i<IDELEMS(h2);i++)
     2218  {
     2219    temp->m[i] = pCopy(h2->m[i]);
     2220    q = pOne();
     2221    // non multiplicative variable
     2222    pSetExp(q, currRing->isLPring - currRing->LPncGenCount + i + 1, 1);
     2223    p_Setm(q, currRing);
     2224    pSetComp(q,i+1+length);
     2225    pSetmComp(q);
     2226    if(temp->m[i]!=NULL)
     2227    {
     2228      if (slength==0) p_Shift(&(temp->m[i]),1,currRing);
     2229      p = temp->m[i];
     2230      temp->m[i] = pAdd(p, q);
     2231    }
     2232    else
     2233      temp->m[i]=q;
    22342234  }
    22352235  rk = k = IDELEMS(h2);
     
    23172317        if (((int)pGetComp(s_temp1->m[i]))<=length)
    23182318        {
    2319           do
    2320           {
     2319          do
     2320          {
    23212321            p_LmDelete(&(s_temp1->m[i]),currRing);
    2322           } while((int)pGetComp(s_temp1->m[i])<=length);
     2322          } while((int)pGetComp(s_temp1->m[i])<=length);
    23232323          poly q = prMoveR( s_temp1->m[i], syz_ring,orig_ring);
    23242324          s_temp1->m[i] = NULL;
    23252325          if (q!=NULL)
    23262326          {
    2327             q=pReverse(q);
    2328             do
     2327            q=pReverse(q);
     2328            do
    23292329            {
    23302330              poly p = q;
     
    23342334              pSetComp(p,0);
    23352335              pSetmComp(p);
    2336               pTest(p);
     2336              pTest(p);
    23372337              MATELEM(*T,(int)t-length,i) = pAdd(MATELEM(*T,(int)t-length,i),p);
    23382338            } while (q != NULL);
     
    23592359  }
    23602360  idTest(s_temp1);
     2361  return s_temp1;
     2362}
     2363#endif
     2364
     2365/*2
     2366* represents (h1+h2)/h2=h1/(h1 intersect h2)
     2367*/
     2368//ideal idModulo (ideal h2,ideal h1)
     2369ideal idModulo (ideal h2,ideal h1, tHomog hom, intvec ** w, matrix *T, GbVariant alg)
     2370{
     2371#ifdef HAVE_SHIFTBBA
     2372  if (rIsLPRing(currRing))
     2373    return idModuloLP(h2,h1,hom,w,T,alg);
     2374#endif
     2375  intvec *wtmp=NULL;
     2376  if (T!=NULL) idDelete((ideal*)T);
     2377
     2378  int i,k,rk,flength=0,slength,length;
     2379  poly p,q;
     2380
     2381  if (idIs0(h2))
     2382    return idFreeModule(si_max(1,h2->ncols));
     2383  if (!idIs0(h1))
     2384    flength = id_RankFreeModule(h1,currRing);
     2385  slength = id_RankFreeModule(h2,currRing);
     2386  length  = si_max(flength,slength);
     2387  if (length==0)
     2388  {
     2389    length = 1;
     2390  }
     2391  ideal temp = idInit(IDELEMS(h2),length+IDELEMS(h2));
     2392  if ((w!=NULL)&&((*w)!=NULL))
     2393  {
     2394    //Print("input weights:");(*w)->show(1);PrintLn();
     2395    int d;
     2396    int k;
     2397    wtmp=new intvec(length+IDELEMS(h2));
     2398    for (i=0;i<length;i++)
     2399      ((*wtmp)[i])=(**w)[i];
     2400    for (i=0;i<IDELEMS(h2);i++)
     2401    {
     2402      poly p=h2->m[i];
     2403      if (p!=NULL)
     2404      {
     2405        d = p_Deg(p,currRing);
     2406        k= pGetComp(p);
     2407        if (slength>0) k--;
     2408        d +=((**w)[k]);
     2409        ((*wtmp)[i+length]) = d;
     2410      }
     2411    }
     2412    //Print("weights:");wtmp->show(1);PrintLn();
     2413  }
     2414  rk = IDELEMS(h2);
     2415  ideal s_temp1;
     2416  ring orig_ring=currRing;
     2417  ring syz_ring=rAssure_SyzOrder(orig_ring, TRUE);
     2418  rSetSyzComp(length,syz_ring);
     2419#ifdef HAVE_SHIFTBBA
     2420  if (rIsLPRing(currRing))
     2421  {
     2422    for (i=0;i<IDELEMS(h2);i++)
     2423    {
     2424      temp->m[i] = pCopy(h2->m[i]);
     2425      q = pOne();
     2426      // non multiplicative variable
     2427      pSetExp(q, currRing->isLPring - currRing->LPncGenCount + i + 1, 1);
     2428      p_Setm(q, currRing);
     2429      pSetComp(q,i+1+length);
     2430      pSetmComp(q);
     2431      if(temp->m[i]!=NULL)
     2432      {
     2433        if (slength==0) p_Shift(&(temp->m[i]),1,currRing);
     2434        p = temp->m[i];
     2435        temp->m[i] = pAdd(p, q);
     2436      }
     2437      else
     2438        temp->m[i]=q;
     2439    }
     2440    rChangeCurrRing(syz_ring);
     2441    ideal s_temp;
     2442
     2443    if (syz_ring != orig_ring)
     2444    {
     2445      s_temp = idrMoveR_NoSort(temp, orig_ring, syz_ring);
     2446    }
     2447    else
     2448    {
     2449      s_temp = temp;
     2450    }
     2451
     2452    idTest(s_temp);
     2453    unsigned save_opt,save_opt2;
     2454    SI_SAVE_OPT1(save_opt);
     2455    SI_SAVE_OPT2(save_opt2);
     2456    if (T==NULL) si_opt_1 |= Sy_bit(OPT_REDTAIL_SYZ);
     2457    si_opt_1 |= Sy_bit(OPT_REDTAIL);
     2458    s_temp1 = idGroebner(s_temp,length,alg);
     2459    SI_RESTORE_OPT1(save_opt);
     2460    SI_RESTORE_OPT2(save_opt2);
     2461  }
     2462  else
     2463#endif
     2464  {
     2465    rChangeCurrRing(syz_ring);
     2466    ideal s1,s2;
     2467
     2468    if (syz_ring != orig_ring)
     2469    {
     2470      s1 = idrCopyR_NoSort(h1, orig_ring, syz_ring);
     2471      s2 = idrCopyR_NoSort(h2, orig_ring, syz_ring);
     2472    }
     2473    else
     2474    {
     2475      s1=idCopy(h1);
     2476      s2=idCopy(h2);
     2477    }
     2478
     2479    unsigned save_opt,save_opt2;
     2480    SI_SAVE_OPT1(save_opt);
     2481    SI_SAVE_OPT2(save_opt2);
     2482    if (T==NULL) si_opt_1 |= Sy_bit(OPT_REDTAIL_SYZ);
     2483    si_opt_1 |= Sy_bit(OPT_REDTAIL);
     2484    s_temp1 = idPrepare(s2,s1,testHomog,length,w,alg);
     2485    SI_RESTORE_OPT1(save_opt);
     2486    SI_RESTORE_OPT2(save_opt2);
     2487  }
     2488
     2489  //if (wtmp!=NULL)  Print("output weights:");wtmp->show(1);PrintLn();
     2490  if ((w!=NULL) && (*w !=NULL) && (wtmp!=NULL))
     2491  {
     2492    delete *w;
     2493    *w=new intvec(IDELEMS(h2));
     2494    for (i=0;i<IDELEMS(h2);i++)
     2495      ((**w)[i])=(*wtmp)[i+length];
     2496  }
     2497  if (wtmp!=NULL) delete wtmp;
     2498
     2499  if (T==NULL)
     2500  {
     2501    for (i=0;i<IDELEMS(s_temp1);i++)
     2502    {
     2503      if (s_temp1->m[i]!=NULL)
     2504      {
     2505        if (((int)pGetComp(s_temp1->m[i]))<=length)
     2506        {
     2507          p_Delete(&(s_temp1->m[i]),currRing);
     2508        }
     2509        else
     2510        {
     2511          p_Shift(&(s_temp1->m[i]),-length,currRing);
     2512        }
     2513      }
     2514    }
     2515  }
     2516  else
     2517  {
     2518    *T=mpNew(IDELEMS(s_temp1),IDELEMS(h2));
     2519    for (i=0;i<IDELEMS(s_temp1);i++)
     2520    {
     2521      if (s_temp1->m[i]!=NULL)
     2522      {
     2523        if (((int)pGetComp(s_temp1->m[i]))<=length)
     2524        {
     2525          do
     2526          {
     2527            p_LmDelete(&(s_temp1->m[i]),currRing);
     2528          } while((int)pGetComp(s_temp1->m[i])<=length);
     2529          poly q = prMoveR( s_temp1->m[i], syz_ring,orig_ring);
     2530          s_temp1->m[i] = NULL;
     2531          if (q!=NULL)
     2532          {
     2533            q=pReverse(q);
     2534            do
     2535            {
     2536              poly p = q;
     2537              long t=pGetComp(p);
     2538              pIter(q);
     2539              pNext(p) = NULL;
     2540              pSetComp(p,0);
     2541              pSetmComp(p);
     2542              pTest(p);
     2543              MATELEM(*T,(int)t-length,i) = p_Add_q(MATELEM(*T,(int)t-length,i),p,orig_ring);
     2544            } while (q != NULL);
     2545          }
     2546        }
     2547        else
     2548        {
     2549          p_Shift(&(s_temp1->m[i]),-length,currRing);
     2550        }
     2551      }
     2552    }
     2553  }
     2554  s_temp1->rank = rk;
     2555  idSkipZeroes(s_temp1);
     2556
     2557  if (syz_ring!=orig_ring)
     2558  {
     2559    rChangeCurrRing(orig_ring);
     2560    s_temp1 = idrMoveR_NoSort(s_temp1, syz_ring, orig_ring);
     2561    rDelete(syz_ring);
     2562    // Hmm ... here seems to be a memory leak
     2563    // However, simply deleting it causes memory trouble
     2564    // idDelete(&s_temp);
     2565  }
     2566  idTest(s_temp1);
     2567  idTest(h2);
     2568  idTest(h1);
     2569  if (T!=NULL) idTest((ideal)*T);
    23612570  return s_temp1;
    23622571}
Note: See TracChangeset for help on using the changeset viewer.