[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.10 and 1.17

version 1.10, 2001/10/09 01:36:20 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.9 2001/09/03 07:01:08 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 PARI  
 #include "genpari.h"  
 int get_lg(GEN);  
 #endif  
   
 extern VL file_vl;  extern VL file_vl;
   
   void loadnbp(FILE *s,NBP *p);
   
 void (*loadf[])() = { 0, loadnum, loadp, loadr, loadlist, loadvect, loadmat,  void (*loadf[])() = { 0, loadnum, loadp, loadr, loadlist, loadvect, loadmat,
         loadstring, 0, loaddp, loadui, loaderror,0,0,0,loadgfmmat, loadbytearray };          loadstring, 0, loaddp, loadui, loaderror,0,0,0,loadgfmmat,
           loadbytearray, 0, 0, 0, 0, 0, 0, 0, 0,  loadnbp };
   
 #if defined(INTERVAL)  #if defined(INTERVAL)
 void loaditv();  void loaditv();
 void loaditvd();  void loaditvd();
 void (*nloadf[])() = { loadq, loadreal, 0, loadbf, loaditv, loaditvd, 0, loaditv, loadcplx, loadmi, loadlm, loadgf2n, loadgfpn, loadgfs, loadgfsn };  void (*nloadf[])() = { loadq, loadreal, 0, loadbf, loaditv, loaditvd, 0, loaditv, loadcplx, loadmi, loadlm, loadgf2n, loadgfpn, loadgfs, loadgfsn, loaddalg };
 #else  #else
 void (*nloadf[])() = { loadq, loadreal, 0, loadbf, loadcplx, loadmi, loadlm, loadgf2n, loadgfpn, loadgfs, loadgfsn };  void (*nloadf[])() = { loadq, loadreal, 0, loadbf, loadcplx, loadmi, loadlm, loadgf2n, loadgfpn, loadgfs, loadgfsn, loaddalg };
 #endif  #endif
   
 void loadobj(FILE *s,Obj *p)  void loadobj(FILE *s,Obj *p)
Line 120  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 PARI          BF r;
         GEN z;    char dmy;
         unsigned int uexpo,lexpo;          int sgn,prec;
         char dmy;    UL exp;
         int sign;  
         unsigned int len;  
         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 defined(LONG_IS_32BIT)  
         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 defined(LONG_IS_64BIT)  
         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)
Line 172  void loaditv(FILE *s,Itv *p)
Line 154  void loaditv(FILE *s,Itv *p)
         *p = q;          *p = q;
 }  }
   
 void loaditvd(FILE *s,ItvD *p)  void loaditvd(FILE *s,IntervalDouble *p)
 {  {
         ItvD q;          IntervalDouble q;
         char dmy;          char dmy;
   
         read_char(s,&dmy);          read_char(s,&dmy);
         NEWItvD(q);          NEWIntervalDouble(q);
         read_double(s,&INF(q));          read_double(s,&INF(q));
         read_double(s,&SUP(q));          read_double(s,&SUP(q));
         *p = q;          *p = q;
Line 265  void loadgfsn(FILE *s,GFSN *p)
Line 247  void loadgfsn(FILE *s,GFSN *p)
         MKGFSN(body,*p);          MKGFSN(body,*p);
 }  }
   
   void loaddalg(FILE *s,DAlg *p)
   {
           char dmy;
           Obj nm,dn;
   
           read_char(s,&dmy);
           loadobj(s,&nm);
           loadobj(s,&dn);
           MKDAlg((DP)nm,(Q)dn,*p);
   }
   
 void loadp(FILE *s,P *p)  void loadp(FILE *s,P *p)
 {  {
         V v;          V v;
Line 452  void loadgfmmat(FILE *s,GFMMAT *p) 
Line 445  void loadgfmmat(FILE *s,GFMMAT *p) 
         for ( i = 0; i < row; i++ )          for ( i = 0; i < row; i++ )
                 read_intarray(s,a[i],col);                  read_intarray(s,a[i],col);
         *p = mat;          *p = mat;
   }
   
   void loadnbp(FILE *s,NBP *p)
   {
           int n,i;
           NBM m;
           NODE r0,r;
   
           read_int(s,&n);
           for ( i = 0, r0 = 0; i < n; i++ ) {
                   NEWNBM(m);
                   loadobj(s,(Obj *)&m->c);
                   read_int(s,&m->d);
                   NEWNBMBDY(m,m->d); read_intarray(s,m->b,(m->d+31)/32);
                   NEXTNODE(r0,r); BDY(r) = (pointer)m;
           }
           if ( r0 ) NEXT(r) = 0;
           MKNBP(*p,r0);
 }  }

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

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