[BACK]Return to ox.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_toolkit

Diff for /OpenXM/src/ox_toolkit/ox.c between version 1.30 and 1.34

version 1.30, 2003/11/09 01:48:01 version 1.34, 2007/03/14 10:30:54
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.29 2003/09/18 20:30:00 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.33 2005/03/03 07:25:17 ohara Exp $ */
   
 /*  /*
    This module includes functions for sending/receiveng CMO's.     This module includes functions for sending/receiveng CMO's.
Line 35  static cmo_ring_by_name* receive_cmo_ring_by_name(OXFI
Line 35  static cmo_ring_by_name* receive_cmo_ring_by_name(OXFI
 static cmo_distributed_polynomial* receive_cmo_distributed_polynomial(OXFILE *oxfp);  static cmo_distributed_polynomial* receive_cmo_distributed_polynomial(OXFILE *oxfp);
 static cmo_recursive_polynomial* receive_cmo_recursive_polynomial(OXFILE *oxfp);  static cmo_recursive_polynomial* receive_cmo_recursive_polynomial(OXFILE *oxfp);
 static cmo_polynomial_in_one_variable* receive_cmo_polynomial_in_one_variable(OXFILE *oxfp);  static cmo_polynomial_in_one_variable* receive_cmo_polynomial_in_one_variable(OXFILE *oxfp);
   static cmo_double*       receive_cmo_double(OXFILE *oxfp);
 static cmo_error2*       receive_cmo_error2(OXFILE *oxfp);  static cmo_error2*       receive_cmo_error2(OXFILE *oxfp);
   
 static int          send_cmo_null(OXFILE *oxfp, cmo_null* c);  static int          send_cmo_null(OXFILE *oxfp, cmo_null* c);
Line 43  static int          send_cmo_string(OXFILE *oxfp, cmo_
Line 44  static int          send_cmo_string(OXFILE *oxfp, cmo_
 static int          send_cmo_mathcap(OXFILE *oxfp, cmo_mathcap* c);  static int          send_cmo_mathcap(OXFILE *oxfp, cmo_mathcap* c);
 static int          send_cmo_list(OXFILE *oxfp, cmo_list* c);  static int          send_cmo_list(OXFILE *oxfp, cmo_list* c);
 static int          send_cmo_monomial32(OXFILE *oxfp, cmo_monomial32* c);  static int          send_cmo_monomial32(OXFILE *oxfp, cmo_monomial32* c);
   static int          send_cmo_double(OXFILE *oxfp, cmo_double* c);
 static int          send_cmo_error2(OXFILE *oxfp, cmo_error2* c);  static int          send_cmo_error2(OXFILE *oxfp, cmo_error2* c);
 static int          send_cmo_distributed_polynomial(OXFILE *oxfp, cmo_distributed_polynomial* c);  static int          send_cmo_distributed_polynomial(OXFILE *oxfp, cmo_distributed_polynomial* c);
 static int send_cmo_polynomial_in_one_variable(OXFILE *oxfp, cmo_polynomial_in_one_variable* c);  static int send_cmo_polynomial_in_one_variable(OXFILE *oxfp, cmo_polynomial_in_one_variable* c);
Line 116  int receive_int32(OXFILE *oxfp)
Line 118  int receive_int32(OXFILE *oxfp)
     return oxfp->receive_int32(oxfp);      return oxfp->receive_int32(oxfp);
 }  }
   
   /* sending an object of int32 type. (not equal to cmo_int32 type)  */
   int send_double(OXFILE *oxfp, double d)
   {
       return oxfp->send_double(oxfp, d);
   }
   
   /* receiving an object of int32 type. (not equal to cmo_int32 type)  */
   double receive_double(OXFILE *oxfp)
   {
       return oxfp->receive_double(oxfp);
   }
   
 /* receiving an (OX_tag, serial number)  */  /* receiving an (OX_tag, serial number)  */
 int receive_ox_tag(OXFILE *oxfp)  int receive_ox_tag(OXFILE *oxfp)
 {  {
Line 194  static cmo_zz* receive_cmo_zz(OXFILE *oxfp)
Line 208  static cmo_zz* receive_cmo_zz(OXFILE *oxfp)
     return c;      return c;
 }  }
   
   static cmo_qq* receive_cmo_qq(OXFILE *oxfp)
   {
       mpz_t num, den;
       mpz_init(num);
       mpz_init(den);
       receive_mpz(oxfp, num);
       receive_mpz(oxfp, den);
       return new_cmo_qq_set_mpz(num, den);
   }
   
 static cmo_zero* receive_cmo_zero(OXFILE *oxfp)  static cmo_zero* receive_cmo_zero(OXFILE *oxfp)
 {  {
     return new_cmo_zero();      return new_cmo_zero();
Line 250  static cmo_polynomial_in_one_variable* receive_cmo_pol
Line 274  static cmo_polynomial_in_one_variable* receive_cmo_pol
     return c;      return c;
 }  }
   
   static cmo_double* receive_cmo_double(OXFILE *oxfp)
   {
           double d = receive_double(oxfp);
           return new_cmo_double(d);
   }
   
 static cmo_indeterminate* receive_cmo_indeterminate(OXFILE *oxfp)  static cmo_indeterminate* receive_cmo_indeterminate(OXFILE *oxfp)
 {  {
     cmo* ob = receive_cmo(oxfp);      cmo* ob = receive_cmo(oxfp);
Line 309  cmo *receive_cmo_tag(OXFILE *oxfp, int tag)
Line 339  cmo *receive_cmo_tag(OXFILE *oxfp, int tag)
     case CMO_ZZ:      case CMO_ZZ:
         m = (cmo *)receive_cmo_zz(oxfp);          m = (cmo *)receive_cmo_zz(oxfp);
         break;          break;
       case CMO_QQ:
           m = (cmo *)receive_cmo_qq(oxfp);
           break;
     case CMO_ZERO:      case CMO_ZERO:
         m = (cmo *)receive_cmo_zero(oxfp);          m = (cmo *)receive_cmo_zero(oxfp);
         break;          break;
Line 327  cmo *receive_cmo_tag(OXFILE *oxfp, int tag)
Line 360  cmo *receive_cmo_tag(OXFILE *oxfp, int tag)
     case CMO_POLYNOMIAL_IN_ONE_VARIABLE:      case CMO_POLYNOMIAL_IN_ONE_VARIABLE:
         m = (cmo *)receive_cmo_polynomial_in_one_variable(oxfp);          m = (cmo *)receive_cmo_polynomial_in_one_variable(oxfp);
         break;          break;
           case CMO_64BIT_MACHINE_DOUBLE:
           case CMO_IEEE_DOUBLE_FLOAT:
           m = (cmo *)receive_cmo_double(oxfp);
           break;
     case CMO_INDETERMINATE:      case CMO_INDETERMINATE:
         m = (cmo *)receive_cmo_indeterminate(oxfp);          m = (cmo *)receive_cmo_indeterminate(oxfp);
         break;          break;
Line 340  cmo *receive_cmo_tag(OXFILE *oxfp, int tag)
Line 377  cmo *receive_cmo_tag(OXFILE *oxfp, int tag)
         m = (cmo *)receive_cmo_error2(oxfp);          m = (cmo *)receive_cmo_error2(oxfp);
         break;          break;
     case CMO_DATUM:      case CMO_DATUM:
     case CMO_QQ:  
     default:      default:
         m = NULL;          m = NULL;
         ox_printf("the CMO (%d) is not implemented.\n", tag);          ox_printf("the CMO (%d) is not implemented.\n", tag);
Line 447  int ox_flush(OXFILE *sv)
Line 483  int ox_flush(OXFILE *sv)
   
 void ox_reset(OXFILE *sv)  void ox_reset(OXFILE *sv)
 {  {
     int tag;  
     send_ox_command(oxf_control(sv), SM_control_reset_connection);      send_ox_command(oxf_control(sv), SM_control_reset_connection);
     while((tag = receive_ox_tag(sv)) != OX_SYNC_BALL) {      while(receive_ox_tag(sv) != OX_SYNC_BALL) {
         if (tag == OX_DATA) {          receive_cmo(sv); /* skipping a message. */
           receive_cmo(sv); /* skipping a message. */  
         }  
     }      }
   
     send_ox_tag(sv, OX_SYNC_BALL);      send_ox_tag(sv, OX_SYNC_BALL);
Line 549  static int send_cmo_polynomial_in_one_variable(OXFILE 
Line 582  static int send_cmo_polynomial_in_one_variable(OXFILE 
     return 0;      return 0;
 }  }
   
   static int send_cmo_double(OXFILE *oxfp, cmo_double* c)
   {
       return send_double(oxfp, c->d);
   }
   
 static int send_cmo_monomial32(OXFILE *oxfp, cmo_monomial32* c)  static int send_cmo_monomial32(OXFILE *oxfp, cmo_monomial32* c)
 {  {
     int i;      int i;
Line 567  static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c)
Line 605  static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c)
     return 0;      return 0;
 }  }
   
   static int send_cmo_qq(OXFILE *oxfp, cmo_qq* c)
   {
       send_mpz(oxfp, mpq_numref(c->mpq));
       send_mpz(oxfp, mpq_denref(c->mpq));
       return 0;
   }
   
 static int send_cmo_recursive_polynomial(OXFILE *oxfp, cmo_recursive_polynomial* c)  static int send_cmo_recursive_polynomial(OXFILE *oxfp, cmo_recursive_polynomial* c)
 {  {
         send_cmo(oxfp, (cmo *)c->ringdef);          send_cmo(oxfp, (cmo *)c->ringdef);
Line 630  void send_cmo(OXFILE *oxfp, cmo* c)
Line 675  void send_cmo(OXFILE *oxfp, cmo* c)
     case CMO_ZZ:      case CMO_ZZ:
         send_cmo_zz(oxfp, (cmo_zz *)c);          send_cmo_zz(oxfp, (cmo_zz *)c);
         break;          break;
       case CMO_QQ:
           send_cmo_qq(oxfp, (cmo_qq *)c);
           break;
     case CMO_DISTRIBUTED_POLYNOMIAL:      case CMO_DISTRIBUTED_POLYNOMIAL:
         send_cmo_distributed_polynomial(oxfp, (cmo_distributed_polynomial *)c);          send_cmo_distributed_polynomial(oxfp, (cmo_distributed_polynomial *)c);
         break;          break;
Line 639  void send_cmo(OXFILE *oxfp, cmo* c)
Line 687  void send_cmo(OXFILE *oxfp, cmo* c)
     case CMO_POLYNOMIAL_IN_ONE_VARIABLE:      case CMO_POLYNOMIAL_IN_ONE_VARIABLE:
         send_cmo_polynomial_in_one_variable(oxfp, (cmo_polynomial_in_one_variable *)c);          send_cmo_polynomial_in_one_variable(oxfp, (cmo_polynomial_in_one_variable *)c);
         break;          break;
           case CMO_64BIT_MACHINE_DOUBLE:
           case CMO_IEEE_DOUBLE_FLOAT:
                   send_cmo_double(oxfp, (cmo_double *)c);
                   break;
     case CMO_TREE:      case CMO_TREE:
         send_cmo_tree(oxfp, (cmo_tree *)c);          send_cmo_tree(oxfp, (cmo_tree *)c);
         break;          break;

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.34

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>