Changeset dccf2b in git


Ignore:
Timestamp:
Aug 2, 2014, 2:36:29 PM (10 years ago)
Author:
Jakob Kroeker <kroeker@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
1b27750259e61df6d2ca90f391c430a44660c92a
Parents:
8fec1744a3a9bea1854b58d99979f51ac2c46026
git-author:
Jakob Kroeker <kroeker@math.uni-hannover.de>2014-08-02 14:36:29+02:00
git-committer:
Jakob Kroeker <kroeker@math.uni-hannover.de>2014-08-02 14:47:41+02:00
Message:
bugfixes for 583, 611, 632
Files:
9 added
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/primdec.lib

    r8fec17 rdccf2b  
    40914091  list re=sres(i,0);                   //the resolution
    40924092  re=minres(re);                       //minimized resolution
    4093   ideal ann=AnnExt_R(e,re);
    4094   if(nvars(basering)-dim(std(ann))!=e)
    4095   {
    4096     return(ideal(1));
     4093  ideal ann = AnnExt_R(e,re);
     4094  if ( nvars(basering)-dim(std(ann)) != e )
     4095  {
     4096    return( ideal(1) );
    40974097  }
    40984098  return(ann);
     
    41034103//computes the annihilator of Ext^n(R/i,R) with given resolution re
    41044104//n is not necessarily the number of variables
     4105// !! borrowed correct code from 'ehv.lib::AnnExtEHV' by Kai Dehmann !! duplicate code!! (jk)
     4106
    41054107static proc AnnExt_R(int n,list re)
     4108"USAGE:   AnnExt_R(n,re); n integer, re resolution
     4109RETURN:  ideal, the annihilator of Ext^n(R/I,R) with given
     4110         resolution re of I
     4111"
    41064112{
    41074113
    4108   if(n<nvars(basering))
    4109   {
    4110     if(size(re[n+1])>0)
    4111     {
    4112         matrix f=transpose(re[n+1]);      //Hom(_,R)
    4113         module k=nres(f,2)[2];            //the kernel
    4114         matrix g=transpose(re[n]);        //the image of Hom(_,R)
    4115 
    4116         ideal ann=quotient1(g,k);         //the anihilator
    4117         return(ann);
    4118     }
    4119   }
    4120   // remaining case: re[n+1] is trivial
    4121   // either n is at least number of variables or
    4122   // resolution happens to be shorter
    4123   ideal ann=Ann(transpose(re[n]));
     4114  if(n < 0)
     4115    {
     4116      ideal ann = ideal(1);
     4117      return(ann);
     4118    }
     4119  int l = size(re);
     4120
     4121  if(n < l)
     4122    {
     4123      matrix f = transpose(re[n+1]);
     4124      if(n == 0)
     4125        {
     4126          matrix g = 0*gen(ncols(f));
     4127        }
     4128      else
     4129        {
     4130          matrix g = transpose(re[n]);
     4131        }
     4132      module k = syz(f);
     4133      ideal ann = quotient1(g,k);
     4134      return(ann);
     4135    }
     4136
     4137  if(n == l)
     4138    {
     4139      ideal ann = Ann(transpose(re[n]));
     4140      return(ann);
     4141    }
     4142
     4143  ideal ann = ideal(1); 
    41244144  return(ann);
    41254145}
     
    66656685  if(homog(i)==1)
    66666686  {
    6667      list re=sres(j,0);                   //the resolution
     6687     resolution re=sres(j,0);                   //the resolution
    66686688     re=minres(re);                       //minimized resolution
    66696689  }
     
    67116731  ideal j=groebner(i);
    67126732  int cod=nvars(basering)-dim(j);
     6733
     6734 
     6735  if(cod > nvars(basering))
     6736    {
     6737      dbprint(printlevel,"//If I is the entire ring...");
     6738      dbprint(printlevel,"//...then return the ideal generated by 1.");
     6739      return(ideal(1));
     6740    }
     6741
    67136742  int e;
    67146743  ideal ann;
    67156744  if(homog(i)==1)
    67166745  {
    6717      list re=sres(j,0);                   //the resolution
     6746     resolution re=sres(j,0);                   //the resolution
    67186747     re=minres(re);                       //minimized resolution
    67196748  }
    67206749  else
    67216750  {
    6722     list re=mres(j,0);
    6723   }
    6724   ann=AnnExt_R(cod,re);
     6751    resolution re=mres(j,0);
     6752  }
     6753  ann = AnnExt_R(cod,re);
     6754  if( nvars(basering)-dim(std(ann) ) != cod)
     6755  {
     6756     return( ideal(1) );
     6757  }
     6758
    67256759  return(ann);
    67266760}
Note: See TracChangeset for help on using the changeset viewer.