version 1.10, 2019/08/28 23:27:34 |
version 1.14, 2019/11/19 10:50:31 |
|
|
* 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.9 2019/08/21 00:37:47 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2018/include/ca.h,v 1.13 2019/11/12 22:27:04 noro Exp $ |
*/ |
*/ |
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
Line 538 typedef struct oDMM { |
|
Line 538 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 611 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 690 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 917 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 954 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))) |