version 1.22, 2003/03/23 20:17:35 |
version 1.24, 2003/05/25 16:35:40 |
|
|
/* -*- mode: C; coding: euc-japan -*- */ |
/* -*- mode: C; coding: euc-japan -*- */ |
/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.21 2003/02/04 20:43:55 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.23 2003/03/30 08:05:22 ohara Exp $ */ |
|
|
/* |
/* |
This module includes functions for sending/receiveng CMO's. |
This module includes functions for sending/receiveng CMO's. |
Line 44 static int send_cmo_monomial32(OXFILE *oxfp, |
|
Line 44 static int send_cmo_monomial32(OXFILE *oxfp, |
|
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); |
|
|
#if defined(WITH_GMP) |
|
static cmo_zz* receive_cmo_zz(OXFILE *oxfp); |
static cmo_zz* receive_cmo_zz(OXFILE *oxfp); |
static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz); |
static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz); |
static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c); |
static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c); |
static int send_mpz(OXFILE *oxfp, mpz_ptr mpz); |
static int send_mpz(OXFILE *oxfp, mpz_ptr mpz); |
#endif /* WITH_GMP */ |
|
|
|
/* hook functions. (yet not implemented) */ |
/* hook functions. (yet not implemented) */ |
static hook_t hook_before_send_cmo = NULL; |
static hook_t hook_before_send_cmo = NULL; |
Line 185 static cmo_monomial32* receive_cmo_monomial32(OXFILE * |
|
Line 183 static cmo_monomial32* receive_cmo_monomial32(OXFILE * |
|
return c; |
return c; |
} |
} |
|
|
#if defined(WITH_GMP) |
|
static cmo_zz* receive_cmo_zz(OXFILE *oxfp) |
static cmo_zz* receive_cmo_zz(OXFILE *oxfp) |
{ |
{ |
cmo_zz* c = new_cmo_zz(); |
cmo_zz* c = new_cmo_zz(); |
receive_mpz(oxfp, c->mpz); |
receive_mpz(oxfp, c->mpz); |
return c; |
return c; |
} |
} |
#endif /* WITH_GMP */ |
|
|
|
static cmo_zero* receive_cmo_zero(OXFILE *oxfp) |
static cmo_zero* receive_cmo_zero(OXFILE *oxfp) |
{ |
{ |
Line 235 static cmo_error2* receive_cmo_error2(OXFILE *oxfp) |
|
Line 231 static cmo_error2* receive_cmo_error2(OXFILE *oxfp) |
|
/* receive_cmo() is called after receive_ox_tag(). */ |
/* receive_cmo() is called after receive_ox_tag(). */ |
cmo* receive_cmo(OXFILE *oxfp) |
cmo* receive_cmo(OXFILE *oxfp) |
{ |
{ |
cmo* m; |
|
int tag = receive_int32(oxfp); |
int tag = receive_int32(oxfp); |
|
return receive_cmo_tag(oxfp, tag); |
|
} |
|
|
|
cmo *receive_cmo_tag(OXFILE *oxfp, int tag) |
|
{ |
|
cmo* m; |
switch(tag) { |
switch(tag) { |
case CMO_NULL: |
case CMO_NULL: |
m = receive_cmo_null(oxfp); |
m = receive_cmo_null(oxfp); |
Line 256 cmo* receive_cmo(OXFILE *oxfp) |
|
Line 257 cmo* receive_cmo(OXFILE *oxfp) |
|
case CMO_MONOMIAL32: |
case CMO_MONOMIAL32: |
m = (cmo *)receive_cmo_monomial32(oxfp); |
m = (cmo *)receive_cmo_monomial32(oxfp); |
break; |
break; |
#if defined(WITH_GMP) |
|
case CMO_ZZ: |
case CMO_ZZ: |
m = (cmo *)receive_cmo_zz(oxfp); |
m = (cmo *)receive_cmo_zz(oxfp); |
break; |
break; |
#endif /* WITH_GMP */ |
|
case CMO_ZERO: |
case CMO_ZERO: |
m = (cmo *)receive_cmo_zero(oxfp); |
m = (cmo *)receive_cmo_zero(oxfp); |
break; |
break; |
Line 285 cmo* receive_cmo(OXFILE *oxfp) |
|
Line 284 cmo* receive_cmo(OXFILE *oxfp) |
|
return m; |
return m; |
} |
} |
|
|
#if defined(WITH_GMP) |
|
static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz) |
static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz) |
{ |
{ |
int i; |
int i; |
Line 297 static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz) |
|
Line 295 static void receive_mpz(OXFILE *oxfp, mpz_ptr mpz) |
|
mpz->_mp_d[i] = receive_int32(oxfp); |
mpz->_mp_d[i] = receive_int32(oxfp); |
} |
} |
} |
} |
#endif /* WITH_GMP */ |
|
|
|
void send_ox_command(OXFILE *oxfp, int sm_command) |
void send_ox_command(OXFILE *oxfp, int sm_command) |
{ |
{ |
Line 482 static int send_cmo_monomial32(OXFILE *oxfp, cmo_monom |
|
Line 479 static int send_cmo_monomial32(OXFILE *oxfp, cmo_monom |
|
return 0; |
return 0; |
} |
} |
|
|
#if defined(WITH_GMP) |
|
static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c) |
static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c) |
{ |
{ |
send_mpz(oxfp, c->mpz); |
send_mpz(oxfp, c->mpz); |
return 0; |
return 0; |
} |
} |
#endif /* WITH_GMP */ |
|
|
|
static int send_cmo_error2(OXFILE *oxfp, cmo_error2* c) |
static int send_cmo_error2(OXFILE *oxfp, cmo_error2* c) |
{ |
{ |
Line 528 void send_cmo(OXFILE *oxfp, cmo* c) |
|
Line 523 void send_cmo(OXFILE *oxfp, cmo* c) |
|
case CMO_MONOMIAL32: |
case CMO_MONOMIAL32: |
send_cmo_monomial32(oxfp, (cmo_monomial32 *)c); |
send_cmo_monomial32(oxfp, (cmo_monomial32 *)c); |
break; |
break; |
#if defined(WITH_GMP) |
|
case CMO_ZZ: |
case CMO_ZZ: |
send_cmo_zz(oxfp, (cmo_zz *)c); |
send_cmo_zz(oxfp, (cmo_zz *)c); |
break; |
break; |
#endif /* WITH_GMP */ |
|
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 541 void send_cmo(OXFILE *oxfp, cmo* c) |
|
Line 534 void send_cmo(OXFILE *oxfp, cmo* c) |
|
} |
} |
} |
} |
|
|
#if defined(WITH_GMP) |
|
static int send_mpz(OXFILE *oxfp, mpz_ptr mpz) |
static int send_mpz(OXFILE *oxfp, mpz_ptr mpz) |
{ |
{ |
int i; |
int i; |
Line 552 static int send_mpz(OXFILE *oxfp, mpz_ptr mpz) |
|
Line 544 static int send_mpz(OXFILE *oxfp, mpz_ptr mpz) |
|
} |
} |
return 0; |
return 0; |
} |
} |
#endif /* WITH_GMP */ |
|
|
|
ox_data* new_ox_data(cmo* c) |
ox_data* new_ox_data(cmo* c) |
{ |
{ |