[BACK]Return to demo.k CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097 / lib / restriction

File: [local] / OpenXM / src / k097 / lib / restriction / demo.k (download)

Revision 1.1, Thu Dec 14 13:18:41 2000 UTC (23 years, 7 months ago) by takayama
Branch: MAIN

nonquasi2(p,q) computes the dimensions of de Rham cohomology
groups of C^2 - V(x^p+y^q+x*y^(q-1)) by calling ox_asir (ann of bfct).
Example:  nonquasi2(4,9):

/* $OpenXM: OpenXM/src/k097/lib/restriction/demo.k,v 1.1 2000/12/14 13:18:41 takayama Exp $  */

load["restriction.k"];;
load("../ox/ox.k");;

def demoSendAsirCommand(a) {
  a.executeString("load(\"bfct\");");
  a.executeString(" def myann(F) { B=ann(eval_str(F)); print(B); return(map(dp_ptod,B,[hoge,x,y,z,s,hh,ee,dx,dy,dz,ds,dhh])); }; ");
  a.executeString(" def mybfct(F) { return(rtostr(bfct(eval_str(F)))); }; ");
}

as = startAsir();
asssssir = as;
demoSendAsirCommand(as);
RingD("x,y,z,s");

def asirBfunction(a,f) {
  local p,b;
  p = ToString(f);
  Println(p);
  b = a.rpc("mybfct",[p]);
  sm1(" b . /b set ");
  return(b);
}

def asirAnnfsXYZ(a,f) {
  local p,b;
  RingD("x,y,z,s");  /* Fix!! See the definition of myann() */
  p = ToString(f);
  b = a.rpc("myann",[p]);
  return(b);
}

def findMinSol(f) {
  sm1(" f (string) dc findIntegralRoots 0 get (universalNumber) dc /FunctionValue set ");
}

def asirAnnXYZ(a,f) {
  local p,b,b0,k1;
  RingD("x,y,z,s");  /* Fix!! See the definition of myann() */
  p = ToString(f);
  b = a.rpc("myann",[p]);
  Print("Annhilating ideal with s is "); Println(b);
  b0 = asirBfunction(a,f);
  Print("bfunction is "); Println(b0);
  k1 = findMinSol(b0);
  Print("Minimal integral root is "); Println(k1);
  sm1(" b { [[(s). k1 (string) dc .]] replace } map /b set ");
  return(b);
}

def nonquasi2(p,q) {
  local s,ans,f;
  f = x^p+y^q+x*y^(q-1);
  Print("f=");Println(f);
  s = ToString(f);
  sm1(" Onverbose ");
  ans = asirAnnfsXYZ(asssssir,f);
  sm1(" ans 0 get (ring) dc ring_def ");
  sm1("[ ans { [[(s). (-1).]] replace } map ] /II set ");
  Println("Step 1: Annhilating ideal (II)"); Println(II);
  sm1(" II 0 get { [(x) (y) (Dx) (Dy) ] laplace0 } map /II set ");
  Sweyl("x,y",[["x",-1,"y",-1,"Dx",1,"Dy",1]]);
  pp = Map(II,"Spoly");
  Res = Sminimal(pp);
  Res0 = Res[0];
  Println("Step2: (-1,1)-minimal resolution (Res0) "); sm1_pmat(Res0);
  R = BfRoots1(Res0[0],"x,y");
  Println("Step3: computing the cohomology of the truncated complex.");
  Print("Roots and b-function are "); Println(R);
  R0 = R[0];
  Ans=Srestall(Res0, ["x", "y"],  ["x", "y"], R0[Length(R0)-1]);
  Print("Answer is "); Println(Ans[0]);
  return(Ans);
}