version 1.1, 2000/05/03 06:42:07 |
version 1.5, 2000/11/19 10:48:48 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM/src/k097/lib/minimal/cohom.k,v 1.4 2000/11/19 05:50:30 takayama Exp $ */ |
|
|
|
/* k0 interface functions for cohom.sm1 */ |
def Boundp(a) { |
def Boundp(a) { |
local b; |
local b; |
sm1("[(parse) [(/) ",a," ( load tag 0 eq |
sm1("[(parse) [(/) ",a," ( load tag 0 eq |
Line 27 def sm1_deRham(a,b) { |
|
Line 27 def sm1_deRham(a,b) { |
|
} |
} |
sm1("[", aa,bb, " ] deRham /FunctionValue set "); |
sm1("[", aa,bb, " ] deRham /FunctionValue set "); |
} |
} |
|
HelpAdd(["sm1_deRham", |
|
["sm1_deRham(f,v) computes the dimension of the deRham cohomology groups", |
|
"of C^n - V(f)", |
|
"This function does not use (-w,w)-minimal free resolution.", |
|
"Example: sm1_deRham(\"x^3-y^2\",\"x,y\");" |
|
]]); |
|
|
|
|
def Weyl(v,w,p) { |
def Weyl(v,w,p) { |
Line 45 def Weyl(v,w,p) { |
|
Line 51 def Weyl(v,w,p) { |
|
sm1(" define_ring_variables "); |
sm1(" define_ring_variables "); |
return(a); |
return(a); |
} |
} |
|
HelpAdd(["Weyl", |
|
[ "Weyl(v,w) defines the Weyl algebra (the ring of differential operators)", |
|
"with the weight vector w.", |
|
"Example: Weyl(\"x,y\",[[\"x\",-1,\"Dx\",1]]); " |
|
]]); |
|
/* ( and ) must match in HelpAdd. */ |
|
|
def sm1_pmat(a) { |
def sm1_pmat(a) { |
sm1(a," pmat "); |
sm1(a," pmat "); |
Line 85 def sm1_syz(A,V,W) { |
|
Line 97 def sm1_syz(A,V,W) { |
|
sm1(P," syz /FunctionValue set"); |
sm1(P," syz /FunctionValue set"); |
} |
} |
/* |
/* |
|
cf. Kernel() |
sm1_syz([x*Dx,y*Dy],[x,y]): |
sm1_syz([x*Dx,y*Dy],[x,y]): |
We want to syz_h, too. |
We want to syz_h, too. |
Step 1: Control by global variable ? syz ==> syz_generic |
Step 1: Control by global variable ? syz ==> syz_generic |
|
|
return(a); |
return(a); |
} |
} |
|
|
|
def to_int0(A) { |
|
local i,c,n,r; |
|
if (IsArray(A)) { |
|
n = Length(A); |
|
r = NewArray(n); |
|
for (i=0; i<n; i++) { |
|
r[i] = to_int0(A[i]); |
|
} |
|
return(r); |
|
} else if (IsInteger(A)) { |
|
return(IntegerToSm1Integer(A)); |
|
} else { |
|
return(A); |
|
} |
|
} |
|
HelpAdd(["Translate.to_int0", |
|
["to_int0(a) : as same as sm1_push_int0."]]); |
|
|
|
|
|
def GKZ(A,B) { |
|
/* we need sm1_rat_to_p in a future. */ |
|
local c; |
|
c = to_int0([A,B]); |
|
sm1(c," gkz /FunctionValue set "); |
|
} |
|
HelpAdd(["GKZ.GKZ", |
|
["GKZ(a,b) returns the GKZ systems associated to the matrix a and the vector b", |
|
"The answer is given by strings.", |
|
"Example: GKZ([[1,1,1,1],[0,1,3,4]],[0,2]);"]]); |
|
|
|
def ToricIdeal(A) { |
|
/* we need sm1_rat_to_p in a future. */ |
|
local c,B,i,n,pp; |
|
n = Length(A); |
|
B = NewArray(n); |
|
for (i=0; i<n; i++) {B[i] = 0;} |
|
c = to_int0([A,B]); |
|
sm1(c," gkz 0 get /pp set "); |
|
for (i=0; i<n; i++) { pp = Rest(pp); } |
|
return(pp); |
|
} |
|
HelpAdd(["ToricIdeal", |
|
["ToricIdeal(a) returns the affine toric ideal associated to the matrix a", |
|
"The answer is given by a list of strings.", |
|
"Example: ToricIdeal([[1,1,1,1],[0,1,3,4]]);"]]); |
|
|
|
def Rest(a) { |
|
sm1(a," rest /FunctionValue set "); |
|
} |
|
HelpAdd(["Rest", |
|
["Rest(a), list a; "]]); |
|
|
|
def Annfs(f,v) { |
|
local fs; |
|
fs = ToString(f); |
|
sm1(" [fs v] annfs /FunctionValue set "); |
|
} |
|
HelpAdd(["Annfs", |
|
["Annfs(f,v) computes the annihilating ideal of f^r and the Bernstein-Sato", |
|
" polynomial b(s) of f", |
|
"Return value: [Ann(f^r), r, b(s)] where r is the minimal integral root of", |
|
" b(s) = 0.", |
|
"Example: Annfs(x^2+y^2,\"x,y\"): " |
|
]]); |