=================================================================== RCS file: /home/cvs/OpenXM/src/ox_toolkit/ox.c,v retrieving revision 1.20 retrieving revision 1.22 diff -u -p -r1.20 -r1.22 --- OpenXM/src/ox_toolkit/ox.c 2003/01/13 12:03:12 1.20 +++ OpenXM/src/ox_toolkit/ox.c 2003/03/23 20:17:35 1.22 @@ -1,5 +1,5 @@ /* -*- mode: C; coding: euc-japan -*- */ -/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.19 2003/01/11 11:42:31 ohara Exp $ */ +/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.21 2003/02/04 20:43:55 ohara Exp $ */ /* This module includes functions for sending/receiveng CMO's. @@ -29,14 +29,11 @@ static cmo_string* receive_cmo_string(OXFILE *ox static cmo_mathcap* receive_cmo_mathcap(OXFILE *oxfp); static cmo_list* receive_cmo_list(OXFILE *oxfp); static cmo_monomial32* receive_cmo_monomial32(OXFILE *oxfp); -static cmo_zz* receive_cmo_zz(OXFILE *oxfp); static cmo_zero* receive_cmo_zero(OXFILE *oxfp); static cmo_dms_generic* receive_cmo_dms_generic(OXFILE *oxfp); static cmo_ring_by_name* receive_cmo_ring_by_name(OXFILE *oxfp); static cmo_distributed_polynomial* receive_cmo_distributed_polynomial(OXFILE *oxfp); - static cmo_error2* receive_cmo_error2(OXFILE *oxfp); -static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz); static int send_cmo_null(OXFILE *oxfp, cmo_null* c); static int send_cmo_int32(OXFILE *oxfp, cmo_int32* m); @@ -44,11 +41,16 @@ static int send_cmo_string(OXFILE *oxfp, cmo_ static int send_cmo_mathcap(OXFILE *oxfp, cmo_mathcap* 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_zz(OXFILE *oxfp, cmo_zz* c); static int send_cmo_error2(OXFILE *oxfp, cmo_error2* c); -static int send_mpz(OXFILE *oxfp, mpz_ptr mpz); static int send_cmo_distributed_polynomial(OXFILE *oxfp, cmo_distributed_polynomial* c); +#if defined(WITH_GMP) +static cmo_zz* receive_cmo_zz(OXFILE *oxfp); +static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz); +static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c); +static int send_mpz(OXFILE *oxfp, mpz_ptr mpz); +#endif /* WITH_GMP */ + /* hook functions. (yet not implemented) */ static hook_t hook_before_send_cmo = NULL; static hook_t hook_after_send_cmo = NULL; @@ -183,12 +185,14 @@ static cmo_monomial32* receive_cmo_monomial32(OXFILE * return c; } +#if defined(WITH_GMP) static cmo_zz* receive_cmo_zz(OXFILE *oxfp) { cmo_zz* c = new_cmo_zz(); receive_mpz(oxfp, c->mpz); return c; } +#endif /* WITH_GMP */ static cmo_zero* receive_cmo_zero(OXFILE *oxfp) { @@ -252,9 +256,11 @@ cmo* receive_cmo(OXFILE *oxfp) case CMO_MONOMIAL32: m = (cmo *)receive_cmo_monomial32(oxfp); break; +#if defined(WITH_GMP) case CMO_ZZ: m = (cmo *)receive_cmo_zz(oxfp); break; +#endif /* WITH_GMP */ case CMO_ZERO: m = (cmo *)receive_cmo_zero(oxfp); break; @@ -279,6 +285,7 @@ cmo* receive_cmo(OXFILE *oxfp) return m; } +#if defined(WITH_GMP) static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz) { int i; @@ -290,6 +297,7 @@ static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz) mpz->_mp_d[i] = receive_int32(oxfp); } } +#endif /* WITH_GMP */ void send_ox_command(OXFILE *oxfp, int sm_command) { @@ -301,11 +309,9 @@ void send_ox_command(OXFILE *oxfp, int sm_command) void ox_close(OXFILE *sv) { send_ox_command(oxf_control(sv), SM_control_kill); -#ifdef DEBUG sleep(2); /* We wait thar an OpenXM server terminates. */ ox_printf("I have closed the connection to an Open XM server.\n"); -#endif } void ox_shutdown(OXFILE *sv) @@ -386,9 +392,7 @@ void ox_reset(OXFILE *sv) } send_ox_tag(sv, OX_SYNC_BALL); -#ifdef DEBUG ox_printf("I have reset an Open XM server.\n"); -#endif } void send_ox(OXFILE *oxfp, ox *m) @@ -478,11 +482,13 @@ static int send_cmo_monomial32(OXFILE *oxfp, cmo_monom return 0; } +#if defined(WITH_GMP) static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c) { send_mpz(oxfp, c->mpz); return 0; } +#endif /* WITH_GMP */ static int send_cmo_error2(OXFILE *oxfp, cmo_error2* c) { @@ -522,9 +528,11 @@ void send_cmo(OXFILE *oxfp, cmo* c) case CMO_MONOMIAL32: send_cmo_monomial32(oxfp, (cmo_monomial32 *)c); break; +#if defined(WITH_GMP) case CMO_ZZ: send_cmo_zz(oxfp, (cmo_zz *)c); break; +#endif /* WITH_GMP */ case CMO_DISTRIBUTED_POLYNOMIAL: send_cmo_distributed_polynomial(oxfp, (cmo_distributed_polynomial *)c); break; @@ -533,6 +541,7 @@ void send_cmo(OXFILE *oxfp, cmo* c) } } +#if defined(WITH_GMP) static int send_mpz(OXFILE *oxfp, mpz_ptr mpz) { int i; @@ -543,6 +552,7 @@ static int send_mpz(OXFILE *oxfp, mpz_ptr mpz) } return 0; } +#endif /* WITH_GMP */ ox_data* new_ox_data(cmo* c) { @@ -569,13 +579,17 @@ ox_sync_ball* new_ox_sync_ball() int ox_stderr_init(FILE *fp) { - ox_stderr = (fp != NULL)? fp: (stderr); - setbuf(ox_stderr, NULL); + ox_stderr = fp; + if (ox_stderr != NULL) { + setbuf(ox_stderr, NULL); + } } int ox_printf(char *format, ...) { - va_list ap; - va_start(ap, format); - vfprintf(ox_stderr, format, ap); + if (ox_stderr != NULL) { + va_list ap; + va_start(ap, format); + vfprintf(ox_stderr, format, ap); + } }