[BACK]Return to cio.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / io

Diff for /OpenXM_contrib2/asir2000/io/cio.c between version 1.21 and 1.22

version 1.21, 2016/03/31 05:30:32 version 1.22, 2016/06/28 11:59:30
Line 44 
Line 44 
  * 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.20 2015/08/18 02:26:05 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/cio.c,v 1.21 2016/03/31 05:30:32 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 248  void write_cmo_real(FILE *s,Real real)
Line 248  void write_cmo_real(FILE *s,Real real)
   
 void write_cmo_bf(FILE *s,BF bf)  void write_cmo_bf(FILE *s,BF bf)
 {  {
   unsigned int r,u,l;    unsigned int r;
   int len,t,i;    int len_r,len;
   L exp;    unsigned int *ptr;
   UL *ptr;  
   
   r = CMO_BIGFLOAT; write_int(s,&r);    r = CMO_BIGFLOAT; write_int(s,&r);
   write_int(s,&MPFR_SIGN(bf->body));    r = MPFR_PREC(bf->body); write_int(s,&r);
   write_int(s,(unsigned int *)&MPFR_PREC(bf->body));    r = MPFR_SIGN(bf->body); write_int(s,&r);
   exp = MPFR_EXP(bf->body);    r = MPFR_EXP(bf->body);  write_int(s,&r);
   write_int64(s,&exp);    len_r = MPFR_LIMB_SIZE_REAL(bf->body);
   len = MPFR_LIMB_SIZE(bf->body);    len   = MPFR_LIMB_SIZE_BODY(bf->body);
 #if SIZEOF_LONG == 4  
   write_int(s,&len);    write_int(s,&len);
   write_intarray(s,(int *)MPFR_MANT(bf->body),len);    ptr = (unsigned int *)MPFR_MANT(bf->body);
 #else /* SIZEOF_LONG == 8 */    write_intarray(s,ptr+(len_r-len),len);
   t = (MPFR_PREC(bf->body)+31)/32;  
   write_int(s,&t);  
   write_longarray(s,MPFR_MANT(bf->body),t);  
 #endif  
 }  }
   
 void write_cmo_zz(FILE *s,int sgn,N n)  void write_cmo_zz(FILE *s,int sgn,N n)
Line 659  void read_cmo_zz(FILE *s,int *sgn,N *rp)
Line 653  void read_cmo_zz(FILE *s,int *sgn,N *rp)
 void read_cmo_bf(FILE *s,BF *bf)  void read_cmo_bf(FILE *s,BF *bf)
 {  {
   BF r;    BF r;
   int sgn,prec,len,i;    int sgn,prec,exp,len,len_r;
   unsigned int u,l;    unsigned int *ptr;
   UL *ptr;  
   L exp;  
   
   NEWBF(r);    NEWBF(r);
   read_int(s,&sgn);  
   read_int(s,&prec);    read_int(s,&prec);
   read_int64(s,&exp);    read_int(s,&sgn);
     read_int(s,&exp);
   read_int(s,&len);    read_int(s,&len);
   mpfr_init2(r->body,prec);    mpfr_init2(r->body,prec);
   MPFR_SIGN(r->body) = sgn;    MPFR_SIGN(r->body) = sgn;
   MPFR_EXP(r->body) = exp;    MPFR_EXP(r->body) = exp;
 #if SIZEOF_LONG == 4    *(MPFR_MANT(r->body)) = 0;
   read_intarray(s,(int *)MPFR_MANT(r->body),len);    ptr = (unsigned int *)MPFR_MANT(r->body);
 #else /* SIZEOF_LONG == 8 */    len_r = MPFR_LIMB_SIZE_REAL(r->body);
   read_longarray(s,MPFR_MANT(r->body),len);    read_intarray(s,ptr+(len_r-len),len);
 #endif  
   *bf = r;    *bf = r;
 }  }
   

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>