[BACK]Return to exp-dmod CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-contrib / packages / sample

File: [local] / OpenXM / src / asir-contrib / packages / sample / exp-dmod (download)

Revision 1.1.1.1 (vendor branch), Sat Nov 27 11:25:18 1999 UTC (24 years, 6 months ago) by takayama
Branch: TAKAYAMA, MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_20000124, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9, ASIR_CONTRIB_1_0
Changes since 1.1: +0 -0 lines

OpenXM/src/asir99/lib/contrib is moved to OpenXM/src/asir-contrib.
Okutani-kun; if you need to commit your changes to this directory.
OpenXM/src/asir99 will be removed soon.
Noro-san; please remove asir99/lib/contrib.

/* $OpenXM: OpenXM/src/asir-contrib/packages/sample/exp-dmod,v 1.1.1.1 1999/11/27 11:25:18 takayama Exp $ */
/* exp-dmod,  1999/ 9/27 */
/* From 1999/Int/exp.asir */
/*  Computing exponents of holonomic system along f=0 */

/* In order to use #define in k0, use load["exp.asir"] */
print("load xm , sm1_start, init0 for initialization. extest2();");
def init0() {
  extern Xm_noX;
  sm1(0,"[(parse) (oxasir.sm1) pushfile] extension");
  if (Xm_noX == 1) {
    sm1(0," oxNoX ");
  }
  sm1(0,"[(parse) (intw.sm1) pushfile] extension");
  ox_check_errors2(0);
}

def sm1reset() {
  ox_reset(0);   
  print("Restoring sm1 local variables.")$
  sm1(0," db.restore ");
  ox_check_errors2(0);
}
register_handler(sm1reset);

def extest2() {
  F = x;
  A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt];
  EEE = ["dx (2 x dx + 3) - (x dx + y dy + 10) (2 x dx -6)",
         "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)","dt"]; 
  EEE2 = ["dx (x dx-4) - (x dx + y dy + 10) ( x dx -6)",
          "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)","dt"]; 
  B=sm1_wTensor0(0,[A,EEE,
                     "t,x,y",[1,2,3]]);
  print(["Tensor Product is ", B])$
  G = sm1_wbf(0,[B,[t,x,y],[t,-1,dt,1]]);
  return(G);
  
}

def extest3() {
  print("This example seems to be hard!");
  F = x*s-y*z;
  A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt,
            dz+diff(F,z)*dt, ds+diff(F,s)*dt];
  EEE = [x*dx+y*dy+z*dz+s*ds-2/3,
              y*dy     +s*ds+1/5,
                   z*dz+s*dx-3/2,
         dx*ds-dy*dz, 
         dt];
  EEE = sm1_rat_to_p(EEE); EEE = EEE[0];
  print(["Numerator: ",EEE]);
  B=sm1_wTensor0(0,[A,EEE,
                     "t,x,y,z,s",[1,2,3,4,5]]);
  print(["Tensor Product is ", B])$
  G = sm1_wbf(0,[B,[t,x,y,z,s],[t,-1,dt,1]]);
  return(G);
  
}

def extest4() {
  F = 1-x-y;
  A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt];
  EEE = ["dx (2 x dx + 3) - (x dx + y dy + 10) (2 x dx -6)",
         "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)","dt"]; 
  B=sm1_wTensor0(0,[A,EEE,
                     "t,x,y",[1,2,3]]);
  print(["Tensor Product is ", B])$
  G = sm1_wbf(0,[B,[t,x,y],[t,-1,dt,1]]);
  return(G);
  /* 0 and -27/2 */  
}

def extest4a() {
   A = 10; B = -3; Bp = -2; C=5/2;Cp=-7;
   print([Cp-A-Bp+C-B,Cp-A-Bp]);
}
def nody(F) {
  if (deg(F,dy) == 0) return(F);
  else return(0);
}

def extest4b() {
  EEE = ["dx (2 x dx + 3) - (x dx + y dy + 10) (2 x dx -6)",
         "dy (y dy - 8) - (x dx + y dy + 10) (y dy +2)"]; 
  G = sm1_gb(0,[EEE,"x,y",[[dy,1]]]);
  G = G[0];
  print(["GB is ",G]);
  H = map(nody,G);
  H = map(subst,H,y,2);
  J = sm1_gb(0,[H,"x"]);
  print(["GB of ode is ",J]);
  K = map(subst,J[0],x,x-1);
  G = sm1_wbf(0,[K,[x],[x,-1,dx,1]]);
  return(G);
}

def extest5() {
  EEE = ["dx (x dx + 3) - (x dx + y dy + 10) (x dx +y dy -6)",
         "dy (y dy - 8) - (x dx + y dy + 10) (x dx + y dy -6)"];
/* Compute the singular locus
  G = sm1_ch(0,[EEE,[x,y]]);
  G = G[0];
  print(["characteristic variety is ",G]);
  H = sm1_saturation(0,[G,[dx,dy],[x,y,dx,dy]]);
  return(gr(H,[dx,dy,x,y],2));
*/
  EEE = sm1_mul(0,1,EEE,[x,y]);
  F = -x^2+(2*y+2)*x-y^2+2*y-1;
  A = [t-F, dx+diff(F,x)*dt, dy+diff(F,y)*dt];
  B=sm1_wTensor0(0,[A,EEE,
                     "t,x,y",[3,2,1]]);
  print(["Tensor Product is ", B])$
  G = sm1_wbf(0,[B,[t,x,y],[t,-1,dt,1]]);
  return(G);
}

end$