![]() ![]() | ![]() |
version 1.4, 2000/11/08 08:02:51 | version 1.9, 2001/09/03 07:01:08 | ||
---|---|---|---|
|
|
||
* 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.3 2000/08/22 05:04:17 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(). */ | /* saveXXX must not use GC_malloc(), GC_malloc_atomic(). */ | ||
#include "ca.h" | #include "ca.h" | ||
#include "parse.h" | #include "parse.h" | ||
#if INET | |||
#include "com.h" | #include "com.h" | ||
#endif | |||
#if PARI | #if PARI | ||
#include "genpari.h" | #include "genpari.h" | ||
|
|
||
void savep(FILE *,P); | void savep(FILE *,P); | ||
void savegf2n(FILE *,GF2N); | void savegf2n(FILE *,GF2N); | ||
void savegfpn(FILE *,GFPN); | void savegfpn(FILE *,GFPN); | ||
void savegfs(FILE *,GFS); | |||
void savelm(FILE *,LM); | void savelm(FILE *,LM); | ||
void savemi(FILE *,MQ); | void savemi(FILE *,MQ); | ||
void savecplx(FILE *,C); | void savecplx(FILE *,C); | ||
|
|
||
void savepfins(FILE *,V); | void savepfins(FILE *,V); | ||
void savegfmmat(FILE *,GFMMAT); | void savegfmmat(FILE *,GFMMAT); | ||
void savebytearray(FILE *,BYTEARRAY); | void savebytearray(FILE *,BYTEARRAY); | ||
void savegfsn(FILE *,GFSN); | |||
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 }; | ||
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; | static short zeroval = 0; | ||
|
|
||
#endif | #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) | void savecplx(s,p) | ||
FILE *s; | FILE *s; | ||
C p; | C p; | ||
|
|
||
write_int(s,&d); | write_int(s,&d); | ||
for ( i = 0; i <= d; i++ ) | for ( i = 0; i <= d; i++ ) | ||
saveobj(s,(Obj)p->body->c[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) | void savep(s,p) |