[BACK]Return to job-pool.asir CVS log [TXT][DIR] Up to [local] / OpenXM / doc / Papers

File: [local] / OpenXM / doc / Papers / job-pool.asir (download)

Revision 1.1, Sat May 13 08:09:51 2000 UTC (23 years, 11 months ago) by takayama
Branch: MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, 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, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9

ohp-metro.tex : OHP for my talk at Tokyo metropolitan university in May 15, 2000.
It includes an introduction to openxm programming in asir.
ohp-v-minimal.tex : OHP of V-minimal free resolution for RIMS workshop.

/* $OpenXM: OpenXM/doc/Papers/job-pool.asir,v 1.1 2000/05/13 08:09:51 takayama Exp $ */
/* For ohp-metro.tex */
#define SM_popCMO 262
def pool() {
  P = [ox_launch(), ox_launch(), ox_launch()];
  map(ox_push_cmo,P,0);
  map(ox_push_cmd,P,SM_popCMO);
  /* map(ox_get,P); mistake */

  I = 50;
  Jobs = [x^(I)-y^(I),x^(I+1)-y^(I+1),x^(I+2)-y^(I+2),x^(I+3)-y^(I+3),
          x^(I+4)-y^(I+4),x^(I+5)-y^(I+5)];
  N = length(Jobs);
  Ans = [ ];
  print("------  started -----");
  /* while (length(Jobs) != 0) { mistake */
  while (length(Ans) != N) {
    Q = ox_select(P)[0];
    F = ox_get(Q);
    /* print([Q,F]); */
    if (F != 0) {
        Ans = append(Ans,[F]); 
        print(Q);
    }
    if (length(Jobs) > 0) {
      Job = car(Jobs); Jobs=cdr(Jobs);
      ox_rpc(Q,"fctr",Job); ox_push_cmd(Q,SM_popCMO);
    }
  }
  return(Ans);
}


#define SM_executeFunction  269
def ex1() {
  P = ox_launch();
  ox_push_cmo(P,13);
  ox_push_cmo(P,8);
  ox_push_cmo(P,ntoint32(2));
  ox_push_cmo(P,"igcd");
  ox_push_cmd(P,SM_executeFunction);
  return(ox_pop_cmo(P));
}
/*  
   ox_execute_string(P,"igcd(13,8);");
   ox_rpc(P,"igcd",13,8);
*/

def ex2() {
  P = ox_launch();
  Ans = [ ];
  for (I=0; I<1.0; I=I+0.1) {
    /* ox_execute_string(P,"pari(dilog,0.3);"); */
    ox_execute_string(P,"pari(dilog,"+rtostr(I)+");");
    Ans = append(Ans,[ox_pop_local(P)]);
  }
  return(Ans);
}

end$