version 1.1, 2000/05/03 06:42:07 |
version 1.3, 2000/05/04 06:55:28 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM/src/k097/lib/minimal/minimal.k,v 1.2 2000/05/03 07:50:38 takayama Exp $ */ |
#define DEBUG 1 |
#define DEBUG 1 |
/* #define ORDINARY 1 */ |
/* #define ORDINARY 1 */ |
/* Test sequences. |
/* Test sequences. |
Line 638 def SpairAndReduction(skel,level,ii,freeRes,tower,ww) |
|
Line 638 def SpairAndReduction(skel,level,ii,freeRes,tower,ww) |
|
|
|
Print("result is "); Println(tmp); |
Print("result is "); Println(tmp); |
|
|
vdeg = SvDegree(si*gi+sj*gj,tower,level-1,ww); |
/* This is essential part for V-minimal resolution. */ |
|
/* vdeg = SvDegree(si*gi+sj*gj,tower,level-1,ww); */ |
|
vdeg = SvDegree(si*gi,tower,level-1,ww); |
vdeg_reduced = SvDegree(tmp[0],tower,level-1,ww); |
vdeg_reduced = SvDegree(tmp[0],tower,level-1,ww); |
Print("vdegree of the original = "); Println(vdeg); |
Print("vdegree of the original = "); Println(vdeg); |
Print("vdegree of the remainder = "); Println(vdeg_reduced); |
Print("vdegree of the remainder = "); Println(vdeg_reduced); |
Line 823 def Sminimal(g) { |
|
Line 825 def Sminimal(g) { |
|
} |
} |
} |
} |
return([Stetris(minRes,redundantTable), |
return([Stetris(minRes,redundantTable), |
[ minRes, redundantTable, reducer,r[3],r[4]]]); |
[ minRes, redundantTable, reducer,r[3],r[4]],r[0]]); |
/* r[4] is the redundantTable_ordinary */ |
/* r[4] is the redundantTable_ordinary */ |
|
/* r[0] is the freeResolution */ |
} |
} |
|
|
|
|
Line 933 In(20)=SvDegree(x,tt,2,ww): |
|
Line 936 In(20)=SvDegree(x,tt,2,ww): |
|
def SvDegree(f,tower,level,w) { |
def SvDegree(f,tower,level,w) { |
local i,ans; |
local i,ans; |
if (IsZero(f)) return(null); |
if (IsZero(f)) return(null); |
|
f = Init(f); |
if (level <= 0) { |
if (level <= 0) { |
return(Sord_w(f,w)); |
return(Sord_w(f,w)); |
} |
} |
Line 942 def SvDegree(f,tower,level,w) { |
|
Line 946 def SvDegree(f,tower,level,w) { |
|
return(ans); |
return(ans); |
} |
} |
|
|
|
def Sannfs(f,v) { |
|
local f2; |
|
f2 = ToString(f); |
|
if (IsArray(v)) { |
|
v = Map(v,"ToString"); |
|
} |
|
sm1(" [f2 v] annfs /FunctionValue set "); |
|
} |
|
|
|
/* Sannfs2("x^3-y^2"); */ |
|
def Sannfs2(f) { |
|
local p,pp; |
|
p = Sannfs(f,"x,y"); |
|
Sweyl("x,y",[["x",-1,"y",-1,"Dx",1,"Dy",1]]); |
|
pp = Map(p[0],"Spoly"); |
|
return(Sminimal(pp)); |
|
} |
|
|
|
def Sannfs3(f) { |
|
local p,pp; |
|
p = Sannfs(f,"x,y,z"); |
|
Sweyl("x,y,z",[["x",-1,"y",-1,"z",-1,"Dx",1,"Dy",1,"Dz",1]]); |
|
pp = Map(p[0],"Spoly"); |
|
return(Sminimal(pp)); |
|
} |
|
|
|
/* |
|
The betti numbers of most examples are 2,1. (0-th and 1-th). |
|
a=Sannfs2("x*y*(x+y-1)"); ==> The betti numbers are 3, 2. |
|
a=Sannfs2("x^3-y^2-x"); : it causes an error. It should be fixed. |
|
a=Sannfs2("x*y*(x-y)"); : it causes an error. It should be fixed. |
|
|
|
*/ |
|
|
|
|