=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/bsave.c,v retrieving revision 1.5 retrieving revision 1.9 diff -u -p -r1.5 -r1.9 --- OpenXM_contrib2/asir2000/io/bsave.c 2000/12/05 01:24:54 1.5 +++ OpenXM_contrib2/asir2000/io/bsave.c 2001/09/03 07:01:08 1.9 @@ -44,7 +44,7 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/bsave.c,v 1.4 2000/11/08 08:02:51 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/bsave.c,v 1.8 2001/03/16 01:56:18 noro Exp $ */ /* saveXXX must not use GC_malloc(), GC_malloc_atomic(). */ @@ -69,6 +69,7 @@ void saver(FILE *,R); void savep(FILE *,P); void savegf2n(FILE *,GF2N); void savegfpn(FILE *,GFPN); +void savegfs(FILE *,GFS); void savelm(FILE *,LM); void savemi(FILE *,MQ); void savecplx(FILE *,C); @@ -79,10 +80,17 @@ void savenum(FILE *,Num); void savepfins(FILE *,V); void savegfmmat(FILE *,GFMMAT); void savebytearray(FILE *,BYTEARRAY); +void savegfsn(FILE *,GFSN); void (*savef[])() = { 0, savenum, savep, saver, savelist, savevect, savemat, savestring, 0, savedp, saveui, saveerror,0,0,0,savegfmmat, savebytearray }; -void (*nsavef[])() = { saveq, savereal, 0, savebf, savecplx ,savemi, savelm, savegf2n, savegfpn}; +#if defined(INTERVAL) +void saveitv(); +void saveitvd(); +void (*nsavef[])() = { saveq, savereal, 0, savebf, saveitv, saveitvd, 0, saveitv, savecplx ,savemi, savelm, savegf2n, savegfpn, savegfs, savegfsn}; +#else +void (*nsavef[])() = { saveq, savereal, 0, savebf, savecplx ,savemi, savelm, savegf2n, savegfpn, savegfs, savegfsn}; +#endif static short zeroval = 0; @@ -168,6 +176,24 @@ BF p; #endif } +#if defined(INTERVAL) +void saveitv(s,p) +FILE *s; +Itv p; +{ + saveobj(s,(Obj)INF(p)); + saveobj(s,(Obj)SUP(p)); +} + +void saveitvd(s,p) +FILE *s; +ItvD p; +{ + write_double(s,&INF(p)); + write_double(s,&SUP(p)); +} +#endif + void savecplx(s,p) FILE *s; C p; @@ -210,6 +236,22 @@ GFPN p; write_int(s,&d); for ( i = 0; i <= d; i++ ) saveobj(s,(Obj)p->body->c[i]); +} + +void savegfs(s,p) +FILE *s; +GFS p; +{ write_int(s,&CONT(p)); } + +void savegfsn(s,p) +FILE *s; +GFSN p; +{ + int d; + + d = DEG(BDY(p)); + write_int(s,&d); + write_intarray(s,COEF(BDY(p)),d+1); } void savep(s,p)