version 1.26, 2003/08/21 12:44:06 |
version 1.28, 2003/09/18 12:46:08 |
|
|
/* -*- mode: C; coding: euc-japan -*- */ |
/* -*- mode: C; coding: euc-japan -*- */ |
/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.25 2003/06/02 10:25:56 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.27 2003/09/15 09:31:41 ohara Exp $ */ |
|
|
/* |
/* |
This module includes functions for sending/receiveng CMO's. |
This module includes functions for sending/receiveng CMO's. |
Line 213 static cmo_ring_by_name* receive_cmo_ring_by_name(OXFI |
|
Line 213 static cmo_ring_by_name* receive_cmo_ring_by_name(OXFI |
|
|
|
static cmo_recursive_polynomial* receive_cmo_recursive_polynomial(OXFILE *oxfp) |
static cmo_recursive_polynomial* receive_cmo_recursive_polynomial(OXFILE *oxfp) |
{ |
{ |
cmo* ringdef = receive_cmo(oxfp); |
cmo_list* ringdef = (cmo_list *)receive_cmo(oxfp); |
cmo* coef = receive_cmo(oxfp); |
cmo* coef = receive_cmo(oxfp); |
return new_cmo_recursive_polynomial(ringdef, coef); |
return new_cmo_recursive_polynomial(ringdef, coef); |
} |
} |
|
|
Line 244 static cmo_polynomial_in_one_variable* receive_cmo_pol |
|
Line 244 static cmo_polynomial_in_one_variable* receive_cmo_pol |
|
while (len>0) { |
while (len>0) { |
exp = receive_int32(oxfp); |
exp = receive_int32(oxfp); |
coef = receive_cmo(oxfp); |
coef = receive_cmo(oxfp); |
list_append_monomial(c, coef, exp); |
list_append_monomial((cmo_list *)c, coef, exp); |
len--; |
len--; |
} |
} |
return c; |
return c; |
} |
} |
|
|
|
static cmo_tree* receive_cmo_tree(OXFILE *oxfp) |
|
{ |
|
cmo_string* name = (cmo_string *)receive_cmo(oxfp); |
|
cmo_list* attrib = (cmo_list *)receive_cmo(oxfp); |
|
cmo_list* leaves = (cmo_list *)receive_cmo(oxfp); |
|
return new_cmo_tree(name, attrib, leaves); |
|
} |
|
|
|
static cmo_lambda* receive_cmo_lambda(OXFILE *oxfp) |
|
{ |
|
cmo_list* args = (cmo_list *)receive_cmo(oxfp); |
|
cmo_tree* body = (cmo_tree *)receive_cmo(oxfp); |
|
return new_cmo_lambda(args, body); |
|
} |
|
|
static cmo_error2* receive_cmo_error2(OXFILE *oxfp) |
static cmo_error2* receive_cmo_error2(OXFILE *oxfp) |
{ |
{ |
cmo* ob = receive_cmo(oxfp); |
cmo* ob = receive_cmo(oxfp); |
Line 305 cmo *receive_cmo_tag(OXFILE *oxfp, int tag) |
|
Line 320 cmo *receive_cmo_tag(OXFILE *oxfp, int tag) |
|
break; |
break; |
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; |
|
case CMO_TREE: |
|
m = (cmo *)receive_cmo_tree(oxfp); |
|
break; |
|
case CMO_LAMBDA: |
|
m = (cmo *)receive_cmo_lambda(oxfp); |
|
break; |
case CMO_ERROR2: |
case CMO_ERROR2: |
m = (cmo *)receive_cmo_error2(oxfp); |
m = (cmo *)receive_cmo_error2(oxfp); |
break; |
break; |
Line 502 static int send_cmo_distributed_polynomial(OXFILE *oxf |
|
Line 524 static int send_cmo_distributed_polynomial(OXFILE *oxf |
|
|
|
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) |
{ |
{ |
cell* el = list_first(c); |
cell* el = list_first((cmo_list *)c); |
int len = list_length(c); |
int len = list_length((cmo_list *)c); |
send_int32(oxfp, len); |
send_int32(oxfp, len); |
send_int32(oxfp, c->var); |
send_int32(oxfp, c->var); |
|
|
while(!list_endof(c, el)) { |
while(!list_endof((cmo_list *)c, el)) { |
send_cmo(oxfp, el->exp); |
send_int32(oxfp, el->exp); |
send_cmo(oxfp, el->cmo); |
send_cmo(oxfp, el->cmo); |
el = list_next(el); |
el = list_next(el); |
} |
} |
Line 535 static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c) |
|
Line 557 static int send_cmo_zz(OXFILE *oxfp, cmo_zz* c) |
|
|
|
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, c->ringdef); |
send_cmo(oxfp, (cmo *)c->ringdef); |
send_cmo(oxfp, c->coef); |
send_cmo(oxfp, c->coef); |
return 0; |
return 0; |
} |
} |
|
|
|
static int send_cmo_tree(OXFILE *oxfp, cmo_tree *c) |
|
{ |
|
send_cmo(oxfp, (cmo *)c->name); |
|
send_cmo(oxfp, (cmo *)c->attributes); |
|
send_cmo(oxfp, (cmo *)c->leaves); |
|
return 0; |
|
} |
|
|
|
static int send_cmo_lambda(OXFILE *oxfp, cmo_lambda *c) |
|
{ |
|
send_cmo(oxfp, (cmo *)c->args); |
|
send_cmo(oxfp, (cmo *)c->body); |
|
return 0; |
|
} |
|
|
static int send_cmo_error2(OXFILE *oxfp, cmo_error2* c) |
static int send_cmo_error2(OXFILE *oxfp, cmo_error2* c) |
{ |
{ |
send_cmo(oxfp, c->ob); |
send_cmo(oxfp, c->ob); |
Line 590 void send_cmo(OXFILE *oxfp, cmo* c) |
|
Line 627 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_TREE: |
|
send_cmo_tree(oxfp, (cmo_tree *)c); |
|
break; |
|
case CMO_LAMBDA: |
|
send_cmo_lambda(oxfp, (cmo_lambda *)c); |
|
break; |
default: |
default: |
call_hook_after_send_cmo(oxfp, c); |
call_hook_after_send_cmo(oxfp, c); |
} |
} |
Line 635 int ox_stderr_init(FILE *fp) |
|
Line 678 int ox_stderr_init(FILE *fp) |
|
if (ox_stderr != NULL) { |
if (ox_stderr != NULL) { |
setbuf(ox_stderr, NULL); |
setbuf(ox_stderr, NULL); |
} |
} |
|
return 0; |
} |
} |
|
|
int ox_printf(char *format, ...) |
int ox_printf(char *format, ...) |
Line 644 int ox_printf(char *format, ...) |
|
Line 688 int ox_printf(char *format, ...) |
|
va_start(ap, format); |
va_start(ap, format); |
vfprintf(ox_stderr, format, ap); |
vfprintf(ox_stderr, format, ap); |
} |
} |
|
return 0; |
} |
} |