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

Diff for /OpenXM_contrib2/asir2000/io/bload.c between version 1.16 and 1.17

version 1.16, 2009/03/16 16:43:03 version 1.17, 2015/08/04 06:20:45
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/bload.c,v 1.15 2006/08/09 02:40:47 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/bload.c,v 1.16 2009/03/16 16:43:03 ohara Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
 #include "com.h"  #include "com.h"
 #if defined(PARI)  
 #include "genpari.h"  
 int get_lg(GEN);  
 #endif  
   
 extern VL file_vl;  extern VL file_vl;
   
Line 124  void loadreal(FILE *s,Real *p)
Line 120  void loadreal(FILE *s,Real *p)
   
 void loadbf(FILE *s,BF *p)  void loadbf(FILE *s,BF *p)
 {  {
 #if defined(PARI)          BF r;
         GEN z;    char dmy;
         unsigned int uexpo,lexpo;          int sgn,prec;
         char dmy;    UL exp;
         int sign;  
         unsigned int len;  
         unsigned long expo;  
         BF q;  
   
           int len;
         read_char(s,&dmy);          read_char(s,&dmy);
         read_int(s,&sign);          NEWBF(r);
         read_int(s,&uexpo);          read_int(s,&sgn);
         read_int(s,&lexpo);          read_int(s,&prec);
           read_int64(s,&exp);
 #if SIZEOF_LONG == 4  
         if ( uexpo )  
                 error("loadbf : exponent too large");  
         read_int(s,&len);          read_int(s,&len);
         NEWBF(q,len+2);    mpfr_init2(r->body,prec);
         z = (GEN)BDY(q);    MPFR_SIGN(r->body) = sgn;
         settyp(z,t_REAL);          MPFR_EXP(r->body) = (int)exp;
         setlg(z,len+2);  #if SIZEOF_LONG == 4
         setsigne(z,(long)sign);          read_intarray(s,(int *)r->body->_mpfr_d,len);
         setexpo(z,(long)lexpo);  #else /* SIZEOF_LONG == 8 */
         read_intarray(s,(int *)(z+2),len);          read_longarray(s,(long *)r->body->_mpfr_d,len);
 #elif SIZEOF_LONG == 8  
         expo = (((UL)uexpo)<<32)|((UL)lexpo);  
         read_int(s,&len);  
         NEWBF(q,(len+5)/2); /* 2+(len+1)/2 */  
         z = (GEN)BDY(q);  
         settyp(z,t_REAL);  
         setlg(z,(len+5)/2);  
         setsigne(z,(long)sign);  
         setexpo(z,(long)expo);  
         read_longarray(s,z+2,len);  
 #endif  #endif
         *p = q;          *p = r;
 #else  
         error("loadbf : PARI is not combined");  
 #endif  
 }  }
   
 #if defined(INTERVAL)  #if defined(INTERVAL)

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

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