version 1.16, 2015/08/06 10:01:52 |
version 1.18, 2015/08/13 00:13:03 |
|
|
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* $OpenXM: OpenXM_contrib2/asir2000/io/cio.c,v 1.15 2015/08/06 09:12:29 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/io/cio.c,v 1.17 2015/08/12 10:45:12 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 250 void write_cmo_bf(FILE *s,BF bf) |
|
Line 250 void write_cmo_bf(FILE *s,BF bf) |
|
|
|
r = CMO_BIGFLOAT; write_int(s,&r); |
r = CMO_BIGFLOAT; write_int(s,&r); |
write_int(s,&MPFR_SIGN(bf->body)); |
write_int(s,&MPFR_SIGN(bf->body)); |
write_int(s,&MPFR_PREC(bf->body)); |
write_int(s,(unsigned int *)&MPFR_PREC(bf->body)); |
exp = MPFR_EXP(bf->body); |
exp = MPFR_EXP(bf->body); |
write_int64(s,&exp); |
write_int64(s,&exp); |
len = MPFR_LIMB_SIZE(bf->body); |
len = MPFR_LIMB_SIZE(bf->body); |
Line 258 void write_cmo_bf(FILE *s,BF bf) |
|
Line 258 void write_cmo_bf(FILE *s,BF bf) |
|
write_int(s,&len); |
write_int(s,&len); |
write_intarray(s,MPFR_MANT(bf->body),len); |
write_intarray(s,MPFR_MANT(bf->body),len); |
#else /* SIZEOF_LONG == 8 */ |
#else /* SIZEOF_LONG == 8 */ |
t = 2*len; |
t = (MPFR_PREC(bf->body)+31)/32; |
write_int(s,&t); |
write_int(s,&t); |
ptr = (UL *)MPFR_MANT(bf->body); |
write_longarray(s,MPFR_MANT(bf->body),t); |
for ( i = 0; i < len; i++ ) { |
|
u = ptr[i]>>32; |
|
l = ptr[i]&0xffffffff; |
|
write_int(s,&u); |
|
write_int(s,&l); |
|
} |
|
#endif |
#endif |
} |
} |
|
|
Line 660 void read_cmo_bf(FILE *s,BF *bf) |
|
Line 654 void read_cmo_bf(FILE *s,BF *bf) |
|
#if SIZEOF_LONG == 4 |
#if SIZEOF_LONG == 4 |
read_intarray(s,MPFR_MANT(r->body),len); |
read_intarray(s,MPFR_MANT(r->body),len); |
#else /* SIZEOF_LONG == 8 */ |
#else /* SIZEOF_LONG == 8 */ |
len >>= 1; |
read_longarray(s,MPFR_MANT(r->body),len); |
ptr = (UL *)MPFR_MANT(r->body); |
|
for ( i = 0; i < len; i++ ) { |
|
read_int(s,&u); |
|
read_int(s,&l); |
|
ptr[i] = ((UL)u)<<32|((UL)l)&0xffffffff; |
|
} |
|
#endif |
#endif |
*bf = r; |
*bf = r; |
} |
} |