| version 1.9, 2019/08/21 00:37:47 | version 1.15, 2019/12/13 14:40:49 | 
|  |  | 
| * 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/asir2018/include/ca.h,v 1.8 2019/03/28 06:46:03 ohara Exp $ | * $OpenXM: OpenXM_contrib2/asir2018/include/ca.h,v 1.14 2019/11/19 10:50:31 noro Exp $ | 
| */ | */ | 
| #include <stdio.h> | #include <stdio.h> | 
| #include <stdlib.h> | #include <stdlib.h> | 
| 
| Line 95  typedef caddr_t pointer; |  | 
| Line 95  typedef caddr_t pointer; |  | 
|  |  | 
| typedef void * pointer; | typedef void * pointer; | 
|  |  | 
| #if defined(sun) | #if defined(ANDROID) | 
| #include <strings.h> | #include <strings.h> | 
|  | #include <string.h> | 
|  | #define index(s,c) strchr(s,c) | 
|  | #define rindex(s,c) strrchr(s,c) | 
|  | #elif defined(sun) | 
|  | #include <strings.h> | 
| #else | #else | 
| #include <string.h> | #include <string.h> | 
| #if defined(VISUAL) || defined(__MINGW32__) | #if defined(VISUAL) || defined(__MINGW32__) | 
| 
| Line 538  typedef struct oDMM { |  | 
| Line 543  typedef struct oDMM { |  | 
| typedef struct oDMMstack { | typedef struct oDMMstack { | 
| int rank,ordtype; | int rank,ordtype; | 
| DMM *in; | DMM *in; | 
|  | DMM *sum; | 
|  | LIST obj; | 
| struct oDMMstack *next; | struct oDMMstack *next; | 
| } *DMMstack; | } *DMMstack; | 
|  |  | 
|  | typedef struct oDMMstack_array { | 
|  | int len; | 
|  | DMMstack *body; | 
|  | } *DMMstack_array; | 
|  |  | 
| typedef struct oDL { | typedef struct oDL { | 
| int td; | int td; | 
| int d[1]; | int d[1]; | 
| 
| Line 604  typedef struct oNODE { |  | 
| Line 616  typedef struct oNODE { |  | 
| struct oNODE *next; | struct oNODE *next; | 
| } *NODE; | } *NODE; | 
|  |  | 
|  | typedef struct oNODE2 { | 
|  | pointer body1,body2; | 
|  | struct oNODE2 *next; | 
|  | } *NODE2; | 
|  |  | 
| /* univariate poly over small finite field; dense */ | /* univariate poly over small finite field; dense */ | 
| typedef struct oUM { | typedef struct oUM { | 
| int d; | int d; | 
| 
| Line 678  struct order_spec { |  | 
| Line 695  struct order_spec { |  | 
| int id; | int id; | 
| Obj obj; | Obj obj; | 
| int nv; | int nv; | 
| int ispot; /* 1 means Position over Term (Pos then Term) */ | int module_ordtype; /* 0=TOP, 1=POT, 2=wPOT, 3=Schreyer */ | 
| int pot_nelim; /* size of positions for pot-elimination order */ | int pot_nelim; /* size of positions for pot-elimination order */ | 
| int *top_weight; | int *top_weight; | 
| int module_rank; | int module_rank; | 
| int *module_top_weight; | int *module_top_weight; | 
|  | struct order_spec *base; /* for schreyer order */ | 
|  | DMMstack dmmstack; | 
| union { | union { | 
| int simple; | int simple; | 
| struct { | struct { | 
| 
| Line 903  bzero((char *)(q)->b,(w)*sizeof(unsigned int))) |  | 
| Line 922  bzero((char *)(q)->b,(w)*sizeof(unsigned int))) |  | 
| #define NEWMP(m) ((m)=(MP)MALLOC(sizeof(struct oMP))) | #define NEWMP(m) ((m)=(MP)MALLOC(sizeof(struct oMP))) | 
| #define NEWDMM(m) ((m)=(DMM)MALLOC(sizeof(struct oDMM))) | #define NEWDMM(m) ((m)=(DMM)MALLOC(sizeof(struct oDMM))) | 
| #define NEWDMMstack(m) ((m)=(DMMstack)MALLOC(sizeof(struct oDMMstack))) | #define NEWDMMstack(m) ((m)=(DMMstack)MALLOC(sizeof(struct oDMMstack))) | 
|  | #define NEWDMMstack_array(m) ((m)=(DMMstack_array)MALLOC(sizeof(struct oDMMstack_array))) | 
| #define NEWDLBUCKET(a) ((a)=(DLBUCKET)MALLOC(sizeof(struct oDLBUCKET))) | #define NEWDLBUCKET(a) ((a)=(DLBUCKET)MALLOC(sizeof(struct oDLBUCKET))) | 
| #define NEWDPP(a) ((a)=(DP_pairs)MALLOC(sizeof(struct dp_pairs))) | #define NEWDPP(a) ((a)=(DP_pairs)MALLOC(sizeof(struct dp_pairs))) | 
|  |  | 
| 
| Line 939  DEG(DC(p))=ONE,COEF(DC(p))=(P)ONE,NEXT(DC(p))=0) |  | 
| Line 959  DEG(DC(p))=ONE,COEF(DC(p))=(P)ONE,NEXT(DC(p))=0) |  | 
| DEG(DC(p))=ONE,COEF(DC(p))=(P)ONEM,NEXT(DC(p))=0) | DEG(DC(p))=ONE,COEF(DC(p))=(P)ONEM,NEXT(DC(p))=0) | 
| #define MKNODE(a,b,c) \ | #define MKNODE(a,b,c) \ | 
| (NEWNODE(a),(a)->body=(pointer)b,NEXT(a)=(NODE)(c)) | (NEWNODE(a),(a)->body=(pointer)b,NEXT(a)=(NODE)(c)) | 
|  | #define NEWNODE2(a) ((a)=(NODE2)MALLOC(sizeof(struct oNODE2))) | 
|  | #define MKNODE2(a,b,c,d) \ | 
|  | (NEWNODE2(a),(a)->body1=(pointer)b,(a)->body2=(pointer)c,NEXT(a)=(NODE2)(d)) | 
|  | #define BDY1(a) ((a)->body1) | 
|  | #define BDY2(a) ((a)->body2) | 
| #define MKLIST(a,b) (NEWLIST(a),(a)->body=(NODE)(b)) | #define MKLIST(a,b) (NEWLIST(a),(a)->body=(NODE)(b)) | 
| #define MKVECT(m,l) \ | #define MKVECT(m,l) \ | 
| (NEWVECT(m),(m)->len=(l),(m)->body=(pointer *)CALLOC((l),sizeof(pointer))) | (NEWVECT(m),(m)->len=(l),(m)->body=(pointer *)CALLOC((l),sizeof(pointer))) | 
| 
| Line 1783  void vntovl(VN,int,VL *); |  | 
| Line 1808  void vntovl(VN,int,VL *); |  | 
| void saveerror(FILE *,ERR); | void saveerror(FILE *,ERR); | 
| void saveui(FILE *,USINT); | void saveui(FILE *,USINT); | 
| void savedp(FILE *,DP); | void savedp(FILE *,DP); | 
|  | void savedpm(FILE *,DPM); | 
| void savestring(FILE *,STRING); | void savestring(FILE *,STRING); | 
| void savemat(FILE *,MAT); | void savemat(FILE *,MAT); | 
| void savevect(FILE *,VECT); | void savevect(FILE *,VECT); | 
| 
| Line 1808  void savegfsn(FILE *,GFSN); |  | 
| Line 1834  void savegfsn(FILE *,GFSN); |  | 
| void loaderror(FILE *,ERR *); | void loaderror(FILE *,ERR *); | 
| void loadui(FILE *,USINT *); | void loadui(FILE *,USINT *); | 
| void loaddp(FILE *,DP *); | void loaddp(FILE *,DP *); | 
|  | void loaddpm(FILE *,DPM *); | 
| void loadstring(FILE *,STRING *); | void loadstring(FILE *,STRING *); | 
| void loadmat(FILE *,MAT *); | void loadmat(FILE *,MAT *); | 
| void loadvect(FILE *,VECT *); | void loadvect(FILE *,VECT *); |