=================================================================== RCS file: /home/cvs/OpenXM/src/ox_math/Attic/ox.h,v retrieving revision 1.1.1.1 retrieving revision 1.7 diff -u -p -r1.1.1.1 -r1.7 --- OpenXM/src/ox_math/Attic/ox.h 1999/10/29 08:06:42 1.1.1.1 +++ OpenXM/src/ox_math/Attic/ox.h 1999/11/06 21:39:36 1.7 @@ -1,6 +1,5 @@ /* -*- mode: C; coding: euc-japan -*- */ -/* $OpenXM$ */ -/* $Id: ox.h,v 1.1.1.1 1999/10/29 08:06:42 ohara Exp $ */ +/* $OpenXM: OpenXM/src/ox_math/ox.h,v 1.6 1999/11/04 18:13:48 ohara Exp $ */ #ifndef _OX_H_ @@ -32,13 +31,25 @@ YYY_cmo_XXX ´Ø¿ô¤¬½èÍý¤¹¤ë¡£cmo ¤ÎÆâÉô¤Ë cmo_ZZZ ¤Ø¤Î¥ ¤¢¤ë¤È¤­¤Ë¤Ï¡¢¤½¤Î¼ïÎà¤Ë¤è¤é¤º¤Ë YYY_cmo ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹ */ - #define DEFAULT_LOGFILE "/tmp/result" +/* Open Xm File Descripter */ +typedef int oxfd; + +#if 0 +/* ¤½¤Î¤¦¤Á¤³¤Á¤é¤Ë°Ü¹Ô¤·¤¿¤¤... */ +typedef struct { + int fd_read; + int fd_write; + int byteorder; +} oxfile; +typedef oxfile *oxfd; +#endif + /* ¥µ¡¼¥Ð¡¼¤È¤ÎÄÌ¿®Ï©¤ËÍѤ¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥Ú¥¢. */ typedef struct { - int stream; - int control; + oxfd stream; + oxfd control; } __ox_file_struct; typedef __ox_file_struct *ox_file_t; @@ -56,6 +67,8 @@ typedef struct { } cmo; typedef cmo cmo_null; +typedef cmo cmo_zero; +typedef cmo cmo_dms_generic; typedef struct { int tag; @@ -64,14 +77,24 @@ typedef struct { typedef struct { int tag; + int size; + char *body; +} cmo_datum; + +typedef struct { + int tag; char *s; } cmo_string; typedef struct { int tag; - mpz_t mpz; -} cmo_zz; + cmo *ob; +} cmo_mathcap; +typedef cmo_mathcap cmo_error2; +typedef cmo_mathcap cmo_ring_by_name; +typedef cmo_mathcap cmo_indeterminate; + typedef struct cell { struct cell *next; cmo *cmo; @@ -80,21 +103,35 @@ typedef struct cell { typedef struct { int tag; int length; /* ¥ê¥¹¥È¤ÎŤµ(ɬÍ×??) */ - cell *head; + cell head[1]; } cmo_list; + typedef struct { + int tag; + int length; + int *exps; + cmo *coef; +} cmo_monomial32; + +typedef struct { int tag; - cmo_list *li; -} cmo_mathcap; + mpz_t mpz; +} cmo_zz; -typedef cmo_mathcap cmo_error; +typedef struct { + int tag; + cmo *num; /* ʬ»Ò (cmo_zz) */ + cmo *den; /* ʬÊì (cmo_zz) */ +} cmo_qq; -/* +/* cmo_list ¤ÎÇÉÀ¸. append_cmo_list ¤ò»È¤Ã¤Æ¤è¤¤. */ typedef struct { int tag; -} ox; -*/ + int length; /* number of monomials */ + cell head[1]; /* a list of monomials */ + cmo *ringdef; +} cmo_distributed_polynomial; typedef cmo ox; @@ -108,21 +145,28 @@ typedef struct { cmo *cmo; } ox_data; -cell* new_cell(cmo* newcmo); +cmo_null* new_cmo_null(); cmo_int32* new_cmo_int32(int i); -cmo_list* new_cmo_list(); cmo_string* new_cmo_string(char* s); +cmo_mathcap* new_cmo_mathcap(cmo* ob); +cmo_list* new_cmo_list(); +cmo_monomial32* new_cmo_monomial32(); +cmo_monomial32* new_cmo_monomial32_size(int size); cmo_zz* new_cmo_zz(); cmo_zz* new_cmo_zz_size(int size); cmo_zz* new_cmo_zz_set_si(int integer); cmo_zz* new_cmo_zz_noinit(); -cmo_null* new_cmo_null(); -cmo_mathcap* new_cmo_mathcap(cmo_list* li); -cmo_error* new_cmo_error(cmo_list* li); +cmo_zero* new_cmo_zero(); +cmo_distributed_polynomial* new_cmo_distributed_polynomial(); +cmo_dms_generic* new_cmo_dms_generic(); +cmo_ring_by_name* new_cmo_ring_by_name(cmo* ob); +cmo_indeterminate* new_cmo_indeterminate(cmo* ob); +cmo_error2* new_cmo_error2(cmo* ob); + ox_data* new_ox_data(cmo* c); ox_command* new_ox_command(int sm_code); -cmo_error* gen_error_object(int err_code); +cmo_error2* gen_error_object(int err_code); cmo* make_mathcap_object(int version, char *id_string); void resize_mpz(mpz_ptr mpz, int size); @@ -138,7 +182,7 @@ int send_ox_cmo(int fd, cmo* m); void send_ox_command(int fd, int sm_command); int send_ox_tag(int fd, int tag); -int append_cmo_list(cmo_list* this, cmo *newcmo); +int append_cmo_list(cmo_list* this, cmo *ob); int length_cmo_list(cmo_list* this); cell* next_cell(cell *this); int cmolen_cmo(cmo* m); @@ -151,9 +195,10 @@ cmo* ox_pop_cmo(ox_file_t sv, int fd); void ox_reset(ox_file_t sv); ox_file_t ox_start(char* host, char* prog1, char* prog2); -char* dump_cmo(char* array, cmo* m); -char* dump_ox_command(char* array, ox_command* m); -char* dump_ox_data(char* array, ox_data* m); +int init_dump_buff(char *buff); +int dump_cmo(cmo* m); +int dump_ox_command(ox_command* m); +int dump_ox_data(ox_data* m); int print_cmo(cmo* c); int print_cmo_int32(cmo_int32* c); @@ -161,15 +206,15 @@ int print_cmo_list(cmo_list* li); int print_cmo_mathcap(cmo_mathcap* c); int print_cmo_string(cmo_string* c); -int decideByteOrder(int fd_read, int fd_write, int order); -int decideByteOrder2(int fd_read, int fd_write, int order); +int decideByteOrderClient(oxfd fd, int order); +int decideByteOrderServer(oxfd fd, int order); int next_serial(); void setCmotypeDisable(int type); cmo_zz* new_cmo_zz_set_string(char *s); -char* CONVERT_ZZ_TO_CSTRING(cmo_zz *c); -char* CONVERT_CMO_TO_CSTRING(cmo *m); -char* CONVERT_NULL_TO_CSTRING(); -char* CONVERT_INT_TO_CSTRING(int integer); +char* convert_zz_to_string(cmo_zz *c); +char* convert_cmo_to_string(cmo *m); +char* convert_null_to_string(); +char* convert_int_to_string(int integer); #endif /* _OX_H_ */