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

Diff for /OpenXM/src/ox_toolkit/ox_toolkit.h between version 1.21 and 1.32

version 1.21, 2003/06/02 20:38:41 version 1.32, 2005/07/26 12:52:05
Line 1 
Line 1 
 /* -*- mode: C -*- */  /* -*- mode: C -*- */
 /* $OpenXM: OpenXM/src/ox_toolkit/ox_toolkit.h,v 1.20 2003/06/02 10:25:57 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_toolkit/ox_toolkit.h,v 1.31 2005/07/20 17:48:03 ohara Exp $ */
   
 #ifndef _OX_TOOLKIT_H_  #ifndef _OX_TOOLKIT_H_
   
Line 10  extern "C" {
Line 10  extern "C" {
 #endif  #endif
   
 #include <stdio.h>  #include <stdio.h>
 #if defined(WITH_GMP)  
 #include <gmp.h>  #include <gmp.h>
 #else  
 #include "gmp_fake.h"  
 #endif /* WITH_GMP */  
 #include <ox/cmotag.h>  #include <ox/cmotag.h>
 #include <ox/oxMessageTag.h>  #include <ox/oxMessageTag.h>
 #include <ox/smCommand.h>  #include <ox/smCommand.h>
 #include <gc/gc.h>  #include <gc/gc.h>
   
   #define OX_PROTOCOL_VERSION     20050304
   #define OX_TOOLKIT_VERSION      "ox_toolkit version 2005.7.20"
   
 #define MALLOC(x) GC_MALLOC((x))  #define MALLOC(x) GC_MALLOC((x))
   #define MALLOC_ATOMIC(x) GC_MALLOC_ATOMIC((x))
 #define ALLOCA(x) alloca((x))  #define ALLOCA(x) alloca((x))
 /* #define FREE(x)   free((x)) */  /* #define FREE(x)   free((x)) */
 #define FREE(x)  #define FREE(x)
Line 31  extern "C" {
Line 31  extern "C" {
   
 /* Mathcap Local Database */  /* Mathcap Local Database */
 typedef struct {  typedef struct {
     int tag;          int  *cmd;
     int flag;          int  *cmo;
 } table;  
   
 typedef struct mathcap {  
     table *cmotbl;  
     table *smtbl;  
 } mathcap;  } mathcap;
   
 /* OpenXM File Descripter */  /* OpenXM File Descripter */
Line 53  typedef struct OXFILE{
Line 48  typedef struct OXFILE{
     char *wbuf;      char *wbuf;
     int wbuf_size;      int wbuf_size;
     int wbuf_count;      int wbuf_count;
       int (*send_double)(struct OXFILE *oxfp, double int64);
       double (*receive_double)(struct OXFILE *oxfp);
 } OXFILE;  } OXFILE;
   
 typedef struct cmo {  typedef struct cmo {
Line 93  typedef struct cell {
Line 90  typedef struct cell {
     struct cmo *cmo;      struct cmo *cmo;
     struct cell *next;      struct cell *next;
     struct cell *prev;      struct cell *prev;
       int exp;
 } cell;  } cell;
   
 typedef struct {  typedef struct {
Line 133  typedef struct {
Line 131  typedef struct {
     cmo *ringdef;      cmo *ringdef;
 } cmo_distributed_polynomial;  } cmo_distributed_polynomial;
   
   /* The following is a derived class from cmo_list.
      that is, list_append can be used. */
   typedef struct {
       int tag;
       int length;   /* number of monomials */
       cell head[1]; /* list of monomials */
       int var;      /* name of the main variable */
   } cmo_polynomial_in_one_variable;
   
   typedef struct {
       int tag;
       cmo_list *ringdef; /* list of variables */
       cmo *coef;  /* ZZ, QQ, int32, Poly_in_1var, Tree, Zero, DPoly */
   } cmo_recursive_polynomial;
   
   typedef struct {
       int tag;
       cmo_string *name;
       cmo_list *attributes;
       cmo_list *leaves;
   } cmo_tree;
   
   typedef struct {
       int tag;
       cmo_list *args;
       cmo_tree *body;
   } cmo_lambda;
   
 typedef cmo ox;  typedef cmo ox;
   
 typedef ox ox_sync_ball;  typedef ox ox_sync_ball;
Line 152  cmo_int32*         new_cmo_int32(int i);
Line 178  cmo_int32*         new_cmo_int32(int i);
 cmo_string*        new_cmo_string(char* s);  cmo_string*        new_cmo_string(char* s);
 cmo_mathcap*       new_cmo_mathcap(cmo* ob);  cmo_mathcap*       new_cmo_mathcap(cmo* ob);
 cmo_list*          new_cmo_list();  cmo_list*          new_cmo_list();
   cmo_list*          new_cmo_list_set(void *a[], int n);
   cmo_list*          new_cmo_list_map(void *a[], int n, void *(* mapf)(void *));
 cmo_monomial32*    new_cmo_monomial32();  cmo_monomial32*    new_cmo_monomial32();
 cmo_monomial32*    new_cmo_monomial32_size(int size);  cmo_monomial32*    new_cmo_monomial32_size(int size);
 cmo_zz*            new_cmo_zz();  cmo_zz*            new_cmo_zz();
Line 160  cmo_zz*            new_cmo_zz_set_si(int integer);
Line 188  cmo_zz*            new_cmo_zz_set_si(int integer);
 cmo_zz*            new_cmo_zz_set_mpz(mpz_ptr z);  cmo_zz*            new_cmo_zz_set_mpz(mpz_ptr z);
 cmo_zz*            new_cmo_zz_noinit();  cmo_zz*            new_cmo_zz_noinit();
 cmo_zz*            new_cmo_zz_set_string(char* s);  cmo_zz*            new_cmo_zz_set_string(char* s);
   cmo_qq*            new_cmo_qq_noinit();
   cmo_qq*            new_cmo_qq_set_mpq(mpq_ptr q);
   cmo_qq*            new_cmo_qq_set_mpz(mpz_ptr num, mpz_ptr den);
 cmo_zero*          new_cmo_zero();  cmo_zero*          new_cmo_zero();
 cmo_double*        new_cmo_double(double d);  cmo_double*        new_cmo_double(double d);
 cmo_distributed_polynomial* new_cmo_distributed_polynomial();  cmo_distributed_polynomial* new_cmo_distributed_polynomial();
 cmo_dms_generic*   new_cmo_dms_generic();  cmo_dms_generic*   new_cmo_dms_generic();
 cmo_ring_by_name*  new_cmo_ring_by_name(cmo* ob);  cmo_ring_by_name*  new_cmo_ring_by_name(cmo* ob);
 cmo_indeterminate* new_cmo_indeterminate(cmo* ob);  cmo_indeterminate* new_cmo_indeterminate(cmo* ob);
   cmo_polynomial_in_one_variable* new_cmo_polynomial_in_one_variable(int var);
   cmo_recursive_polynomial* new_cmo_recursive_polynomial(cmo_list* ringdef, cmo* coef);
   cmo_tree*          new_cmo_tree(cmo_string* name, cmo_list *attributes, cmo_list *leaves);
   cmo_lambda*        new_cmo_lambda(cmo_list* args, cmo_tree* body);
 cmo_error2*        new_cmo_error2(cmo* ob);  cmo_error2*        new_cmo_error2(cmo* ob);
   
 ox_data*           new_ox_data(cmo* c);  ox_data*           new_ox_data(cmo* c);
Line 176  char*              new_string_set_cmo(cmo* m);
Line 211  char*              new_string_set_cmo(cmo* m);
   
 cmo_error2*        make_error_object(int err_code, cmo* ob);  cmo_error2*        make_error_object(int err_code, cmo* ob);
   
   cmo*               ox_parse_lisp(char *s);
   
 /* Low level API */  /* Low level API */
 cmo*               receive_cmo(OXFILE *fp);  cmo*               receive_cmo(OXFILE *fp);
 cmo*               receive_cmo_tag(OXFILE *fp, int tag);  cmo*               receive_cmo_tag(OXFILE *fp, int tag);
Line 210  cell*              list_first(cmo_list *);
Line 247  cell*              list_first(cmo_list *);
 int                list_endof(cmo_list *, cell *el);  int                list_endof(cmo_list *, cell *el);
 cell*              list_next(cell *el);  cell*              list_next(cell *el);
 cmo_list*          list_append(cmo_list*, cmo *ob);  cmo_list*          list_append(cmo_list*, cmo *ob);
   cmo_list*          list_append_monomial(cmo_list* , cmo* coef, int exp);
 cmo_list*          list_appendl(cmo_list*, ...);  cmo_list*          list_appendl(cmo_list*, ...);
 int                list_length(cmo_list* );  int                list_length(cmo_list* );
 cmo*               list_nth(cmo_list* , int n);  cmo*               list_nth(cmo_list* , int n);
   void**             list_to_array(cmo_list *c);
   void**             list_to_array_map(cmo_list *c, void *(* mapf)(void *));
   
 int                cmolen_cmo(cmo* m);  int                cmolen_cmo(cmo* m);
 void               dump_buffer_init(char *s);  void               dump_buffer_init(char *s);
Line 234  int add_hook_after_send_cmo(hook_t func);
Line 274  int add_hook_after_send_cmo(hook_t func);
   
 typedef struct symbol *symbol_t;  typedef struct symbol *symbol_t;
   
 void setflag_parse(int flag);  
 cmo *parse();  
 void init_parser(char *s);  
   
 symbol_t lookup_by_symbol(char *key);  symbol_t lookup_by_symbol(char *key);
 symbol_t lookup_by_token(int tok);  symbol_t lookup_by_token(int tok);
 symbol_t lookup_by_tag(int tag);  symbol_t lookup_by_tag(int tag);
Line 246  char*    get_symbol_by_tag(int tag);
Line 282  char*    get_symbol_by_tag(int tag);
   
 /* for mathcap database */  /* for mathcap database */
 mathcap *new_mathcap();  mathcap *new_mathcap();
 void mathcap_init(int ver, char *vstr, char *sysname, int cmos[], int sms[]);  void mathcap_init(char *version, char *sysname);
 cmo_mathcap* mathcap_get(mathcap *);  cmo_mathcap* mathcap_get(mathcap *);
 mathcap *mathcap_update(mathcap *, cmo_mathcap *mc);  mathcap *mathcap_update(mathcap *, cmo_mathcap *mc);
 int mathcap_allowQ_cmo(mathcap *, cmo *ob);  
   
 int oxf_read(void *buffer, size_t size, size_t num, OXFILE *oxfp);  int oxf_read(void *buffer, size_t size, size_t num, OXFILE *oxfp);
 int oxf_write(void *buffer, size_t size, size_t num, OXFILE *oxfp);  int oxf_write(void *buffer, size_t size, size_t num, OXFILE *oxfp);
   
 /* for OXFILE */  /* for OXFILE */
 int oxf_listen(short *portp);  int oxf_listen(int *portp);
 OXFILE *oxf_connect_active(char *hostname, short port);  OXFILE *oxf_connect_active(char *hostname, short port);
 OXFILE *oxf_connect_passive(int listened);  OXFILE *oxf_connect_passive(int listened);
 OXFILE *oxf_open(int fd);  OXFILE *oxf_open(int fd);

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.32

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