=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/bload.c,v retrieving revision 1.1.1.1 retrieving revision 1.9 diff -u -p -r1.1.1.1 -r1.9 --- OpenXM_contrib2/asir2000/io/bload.c 1999/12/03 07:39:11 1.1.1.1 +++ OpenXM_contrib2/asir2000/io/bload.c 2001/09/03 07:01:08 1.9 @@ -1,9 +1,54 @@ -/* $OpenXM: OpenXM/src/asir99/io/bload.c,v 1.1.1.1 1999/11/10 08:12:30 noro Exp $ */ +/* + * Copyright (c) 1994-2000 FUJITSU LABORATORIES LIMITED + * All rights reserved. + * + * FUJITSU LABORATORIES LIMITED ("FLL") hereby grants you a limited, + * non-exclusive and royalty-free license to use, copy, modify and + * redistribute, solely for non-commercial and non-profit purposes, the + * computer program, "Risa/Asir" ("SOFTWARE"), subject to the terms and + * conditions of this Agreement. For the avoidance of doubt, you acquire + * only a limited right to use the SOFTWARE hereunder, and FLL or any + * third party developer retains all rights, including but not limited to + * copyrights, in and to the SOFTWARE. + * + * (1) FLL does not grant you a license in any way for commercial + * purposes. You may use the SOFTWARE only for non-commercial and + * non-profit purposes only, such as academic, research and internal + * business use. + * (2) The SOFTWARE is protected by the Copyright Law of Japan and + * international copyright treaties. If you make copies of the SOFTWARE, + * with or without modification, as permitted hereunder, you shall affix + * to all such copies of the SOFTWARE the above copyright notice. + * (3) An explicit reference to this SOFTWARE and its copyright owner + * shall be made on your publication or presentation in any form of the + * results obtained by use of the SOFTWARE. + * (4) In the event that you modify the SOFTWARE, you shall notify FLL by + * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification + * for such modification or the source code of the modified part of the + * SOFTWARE. + * + * THE SOFTWARE IS PROVIDED AS IS WITHOUT ANY WARRANTY OF ANY KIND. FLL + * MAKES ABSOLUTELY NO WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY, AND + * EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF THIRD PARTIES' + * RIGHTS. NO FLL DEALER, AGENT, EMPLOYEES IS AUTHORIZED TO MAKE ANY + * MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO THIS WARRANTY. + * UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, + * OR OTHERWISE, SHALL FLL BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL + * DAMAGES OF ANY CHARACTER, INCLUDING, WITHOUT LIMITATION, DAMAGES + * ARISING OUT OF OR RELATING TO THE SOFTWARE OR THIS AGREEMENT, DAMAGES + * FOR LOSS OF GOODWILL, WORK STOPPAGE, OR LOSS OF DATA, OR FOR ANY + * DAMAGES, EVEN IF FLL SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF + * SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. EVEN IF A PART + * 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/bload.c,v 1.8 2001/03/16 01:56:18 noro Exp $ +*/ #include "ca.h" #include "parse.h" -#if INET #include "com.h" -#endif #if PARI #include "genpari.h" int get_lg(GEN); @@ -21,6 +66,8 @@ void loadr(FILE *,R *); void loadp(FILE *,P *); void loadgf2n(FILE *,GF2N *); void loadgfpn(FILE *,GFPN *); +void loadgfs(FILE *,GFS *); +void loadgfsn(FILE *,GFSN *); void loadlm(FILE *,LM *); void loadmi(FILE *,MQ *); void loadcplx(FILE *,C *); @@ -29,14 +76,21 @@ void loadreal(FILE *,Real *); void loadq(FILE *,Q *); void loadnum(FILE *,Num *); void loadgfmmat(FILE *,GFMMAT *); +void loadbytearray(FILE *,BYTEARRAY *); V loadpfins(FILE *); extern VL file_vl; void (*loadf[])() = { 0, loadnum, loadp, loadr, loadlist, loadvect, loadmat, - loadstring, 0, loaddp, loadui, loaderror,0,0,0,loadgfmmat }; -void (*nloadf[])() = { loadq, loadreal, 0, loadbf, loadcplx, loadmi, loadlm, loadgf2n, loadgfpn }; + loadstring, 0, loaddp, loadui, loaderror,0,0,0,loadgfmmat, loadbytearray }; +#if defined(INTERVAL) +void loaditv(); +void loaditvd(); +void (*nloadf[])() = { loadq, loadreal, 0, loadbf, loaditv, loaditvd, 0, loaditv, loadcplx, loadmi, loadlm, loadgf2n, loadgfpn, loadgfs, loadgfsn }; +#else +void (*nloadf[])() = { loadq, loadreal, 0, loadbf, loadcplx, loadmi, loadlm, loadgf2n, loadgfpn, loadgfs, loadgfsn }; +#endif void loadobj(s,p) FILE *s; @@ -144,6 +198,34 @@ BF *p; #endif } +#if defined(INTERVAL) +void loaditv(s,p) +FILE *s; +Itv *p; +{ + Itv q; + char dmy; + + read_char(s,&dmy); + NEWItvP(q); loadobj(s,(Obj *)&INF(q)); loadobj(s,(Obj *)&SUP(q)); + *p = q; +} + +void loaditvd(s,p) +FILE *s; +ItvD *p; +{ + ItvD q; + char dmy; + + read_char(s,&dmy); + NEWItvD(q); + read_double(s,&INF(q)); + read_double(s,&SUP(q)); + *p = q; +} +#endif + void loadcplx(s,p) FILE *s; C *p; @@ -212,6 +294,32 @@ GFPN *p; MKGFPN(body,*p); } +void loadgfs(s,p) +FILE *s; +GFS *p; +{ + GFS q; + char dmy; + + read_char(s,&dmy); + NEWGFS(q); read_int(s,(int *)&CONT(q)); + *p = q; +} + +void loadgfsn(s,p) +FILE *s; +GFSN *p; +{ + char dmy; + int d; + UM body; + + read_char(s,&dmy); read_int(s,&d); + body = UMALLOC(d); DEG(body) = d; + read_intarray(s,COEF(body),d+1); + MKGFSN(body,*p); +} + void loadp(s,p) FILE *s; P *p; @@ -355,6 +463,21 @@ char **p; } else t = ""; *p = t; +} + +void loadbytearray(s,p) +FILE *s; +BYTEARRAY *p; +{ + int len; + BYTEARRAY array; + + read_int(s,&len); + MKBYTEARRAY(array,len); + if ( len ) { + read_string(s,array->body,len); + } + *p = array; } void loaddp(s,p)