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

Diff for /OpenXM_contrib2/asir2000/io/bsave.c between version 1.10 and 1.16

version 1.10, 2001/10/09 01:36:20 version 1.16, 2009/03/16 16:43:03
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/bsave.c,v 1.9 2001/09/03 07:01:08 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/bsave.c,v 1.15 2006/08/09 02:40:47 noro Exp $
 */  */
 /* saveXXX must not use GC_malloc(), GC_malloc_atomic(). */  /* saveXXX must not use GC_malloc(), GC_malloc_atomic(). */
   
Line 52 
Line 52 
 #include "parse.h"  #include "parse.h"
 #include "com.h"  #include "com.h"
   
 #if PARI  #if defined(PARI)
 #include "genpari.h"  #include "genpari.h"
 int get_lg(GEN);  int get_lg(GEN);
 #endif  #endif
   
   void savenbp(FILE *s,NBP p);
   
 void (*savef[])() = { 0, savenum, savep, saver, savelist, savevect,  void (*savef[])() = { 0, savenum, savep, saver, savelist, savevect,
         savemat, savestring, 0, savedp, saveui, saveerror,0,0,0,savegfmmat, savebytearray };          savemat, savestring, 0, savedp, saveui, saveerror,0,0,0,savegfmmat,
           savebytearray, 0, 0, 0, 0, 0, 0, 0, 0,  savenbp };
 #if defined(INTERVAL)  #if defined(INTERVAL)
 void saveitv();  void saveitv();
 void saveitvd();  void saveitvd();
 void (*nsavef[])() = { saveq, savereal, 0, savebf, saveitv, saveitvd, 0, saveitv, savecplx ,savemi, savelm, savegf2n, savegfpn, savegfs, savegfsn};  void (*nsavef[])() = { saveq, savereal, 0, savebf, saveitv, saveitvd, 0, saveitv, savecplx ,savemi, savelm, savegf2n, savegfpn, savegfs, savegfsn,savedalg};
 #else  #else
 void (*nsavef[])() = { saveq, savereal, 0, savebf, savecplx ,savemi, savelm, savegf2n, savegfpn, savegfs, savegfsn};  void (*nsavef[])() = { saveq, savereal, 0, savebf, savecplx ,savemi, savelm, savegf2n, savegfpn, savegfs, savegfsn,savedalg};
 #endif  #endif
   
 static short zeroval = 0;  static short zeroval = 0;
Line 112  void savereal(FILE *s,Real p)
Line 115  void savereal(FILE *s,Real p)
   
 void savebf(FILE *s,BF p)  void savebf(FILE *s,BF p)
 {  {
 #if PARI  #if defined(PARI)
         GEN z;          GEN z;
         int sign;          int sign;
         unsigned long expo;          unsigned long expo;
         unsigned int len;          unsigned int len,t;
   
         z = (GEN)BDY(p);          z = (GEN)BDY(p);
         sign = signe(z);          sign = signe(z);
Line 125  void savebf(FILE *s,BF p)
Line 128  void savebf(FILE *s,BF p)
   
         write_int(s,&sign);          write_int(s,&sign);
   
 #if defined(LONG_IS_32BIT)  #if SIZEOF_LONG == 4
         write_int(s,(int *)&zeroval); /* expo>>32 is always 0 */          write_int(s,(int *)&zeroval); /* expo>>32 is always 0 */
         write_int(s,(int *)&expo);          write_int(s,(int *)&expo);
         write_int(s,&len);          write_int(s,&len);
         write_intarray(s,(int *)&z[2],len);          write_intarray(s,(int *)&z[2],len);
 #elif defined(LONG_IS_64BIT)  #elif SIZEOF_LONG == 8
         t = expo>>32; write_int(s,(int *)&t);          t = expo>>32; write_int(s,(int *)&t);
         t = expo&0xffffffff; write_int(s,&t);          t = expo&0xffffffff; write_int(s,&t);
         t = 2*len; write_int(s,&t);          t = 2*len; write_int(s,&t);
Line 148  void saveitv(FILE *s,Itv p)
Line 151  void saveitv(FILE *s,Itv p)
         saveobj(s,(Obj)SUP(p));          saveobj(s,(Obj)SUP(p));
 }  }
   
 void saveitvd(FILE *s,ItvD p)  void saveitvd(FILE *s,IntervalDouble p)
 {  {
         write_double(s,&INF(p));          write_double(s,&INF(p));
         write_double(s,&SUP(p));          write_double(s,&SUP(p));
Line 201  void savegfsn(FILE *s,GFSN p)
Line 204  void savegfsn(FILE *s,GFSN p)
         write_intarray(s,COEF(BDY(p)),d+1);          write_intarray(s,COEF(BDY(p)),d+1);
 }  }
   
   void savedalg(FILE *s,DAlg p)
   {
           saveobj(s,(Obj)p->nm);
           saveobj(s,(Obj)p->dn);
   }
   
 void savep(FILE *s,P p)  void savep(FILE *s,P p)
 {  {
         DCP dc;          DCP dc;
Line 338  void savebytearray(FILE *s,BYTEARRAY p)
Line 347  void savebytearray(FILE *s,BYTEARRAY p)
 {  {
         write_short(s,&OID(p)); write_int(s,&p->len);          write_short(s,&OID(p)); write_int(s,&p->len);
         write_string(s,p->body,p->len);          write_string(s,p->body,p->len);
   }
   
   void savenbp(FILE *s,NBP p)
   {
           int i,n;
           NODE t;
           NBM m;
   
           write_short(s,&OID(p));
           for ( n = 0, t = BDY(p); t; t = NEXT(t), n++ );
           write_int(s,&n);
           for ( i = 0, t = BDY(p); i < n; t = NEXT(t), i++ ) {
                   m = (NBM)BDY(t);
                   saveobj(s,(Obj)m->c);
                   write_int(s,&m->d);
                   write_intarray(s,m->b,(m->d+31)/32);
           }
 }  }

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

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