Changeset 6a0bf0 in git


Ignore:
Timestamp:
Aug 5, 2014, 2:23:35 PM (10 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
468a2b59e7c1fc2e01bdad34042ac42460c27299
Parents:
53bb4c6073c677719bb2ec2cff900750e45804edd6d9368ea0fd06d0387039f01a3bafa5e047063f
Message:
Merge branch 'fix.baseringchange.algebra.is_injective' of https://github.com/surface-smoothers/Sources into surface-smoothers-fix.baseringchange.algebra.is_injective

Conflicts:
	Tst/Short.lst
Files:
12 added
5 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/algebra.lib

    r53bb4c6 r6a0bf0  
    587587      L[1] = size(NF(psi(ker),std(0))) == 0;
    588588    }
     589    setring bsr;
    589590    if ( defined(pau) != voice )
    590591    {  return (L[1]);
  • Singular/LIB/primdec.lib

    rd6d936 r6a0bf0  
    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}
  • Singular/iparith.cc

    rd6d936 r6a0bf0  
    29912991  int i=(int)(long)u->Data();
    29922992  int j=(int)(long)v->Data();
     2993  if (j-i <0) {WerrorS("invalid range for random"); return TRUE;}
    29932994  res->data =(char *)(long)((i > j) ? i : (siRand() % (j-i+1)) + i);
    29942995  return FALSE;
  • Tst/Short.lst

    r53bb4c6 r6a0bf0  
    6868Short/bug_613.tst
    6969Short/bug_632.tst
     70Short/bug_633.tst
    7071Short/bug_7.tst
    7172Short/bug_8.tst
Note: See TracChangeset for help on using the changeset viewer.