=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/include/ca.h,v retrieving revision 1.62 retrieving revision 1.82 diff -u -p -r1.62 -r1.82 --- OpenXM_contrib2/asir2000/include/ca.h 2005/11/27 00:07:05 1.62 +++ OpenXM_contrib2/asir2000/include/ca.h 2012/12/17 07:20:45 1.82 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/include/ca.h,v 1.61 2005/11/16 23:42:54 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/include/ca.h,v 1.81 2011/06/16 08:17:15 noro Exp $ */ #include #include @@ -57,9 +57,6 @@ #if !defined(VISUAL) #include -#endif - -#if !defined(VISUAL) #include #endif @@ -93,6 +90,10 @@ typedef void * pointer; #endif #endif +#define NULLP ((void *)0) + +#define TODO printf("%s: not implemented!\n", __func__) + #define COPY(a,b) ((b)=(a)) #define FREEN(p) #define FREEQ(p) @@ -151,18 +152,16 @@ typedef enum { A_end=0,A_fnode,A_arf,A_int,A_str,A_internal,A_node,A_notimpl,A_func } farg_type; -#if defined(LONG_IS_32BIT) -#if defined(VISUAL) -typedef _int64 L; -typedef unsigned _int64 UL; -#else +#if SIZEOF_LONG == 8 +typedef long L; +typedef unsigned long UL; +#elif defined(HAVE_UNSIGNED_LONG_LONG) typedef long long L; typedef unsigned long long UL; +#elif defined(_MSC_VER) +typedef _int64 L; +typedef unsigned _int64 UL; #endif -#else -typedef long L; -typedef unsigned long UL; -#endif typedef struct oN { int p; @@ -455,7 +454,7 @@ typedef struct oNBP { typedef struct oNBM { int d; - Q c; + P c; unsigned int *b; } *NBM; @@ -623,6 +622,8 @@ struct order_spec { int id; Obj obj; int nv; + int ispot; /* 1 means Position over Term (Pos then Term) */ + int pot_nelim; /* size of positions for pot-elimination order */ union { int simple; struct { @@ -725,15 +726,11 @@ typedef unsigned int ModNum; /* memory allocators (W_... : uses alloca) */ -#if 0 #define MALLOC(d) Risa_GC_malloc(d) #define MALLOC_ATOMIC(d) Risa_GC_malloc_atomic(d) +#define MALLOC_ATOMIC_IGNORE_OFF_PAGE(d) Risa_GC_malloc_atomic_ignore_off_page(d) #define REALLOC(p,d) Risa_GC_realloc(p,d) -#else -#define MALLOC(d) GC_malloc(d) -#define MALLOC_ATOMIC(d) GC_malloc_atomic(d) -#define REALLOC(p,d) GC_realloc(p,d) -#endif +#define GCFREE(p) Risa_GC_free(p) #define CALLOC(d,e) MALLOC((d)*(e)) #if !defined(__CYGWIN__) && (defined(__GNUC__) || defined(vax) || defined(apollo) || defined(alloca) || defined(VISUAL)) @@ -885,7 +882,7 @@ DEG(DC(p))=ONE,COEF(DC(p))=(P)ONEM,NEXT(DC(p))=0) #define MKERR(e,b) (NEWERR(e),(e)->body=(Obj)(b)) #define MKMATHCAP(e,b) (NEWMATHCAP(e),(e)->body=(LIST)(b)) #define MKBYTEARRAY(m,l) \ -(NEWBYTEARRAY(m),(m)->len=(l),(m)->body=(char *)MALLOC_ATOMIC((l)),bzero((m)->body,(l))) +(NEWBYTEARRAY(m),(m)->len=(l),(m)->body=(unsigned char *)MALLOC_ATOMIC((l)),bzero((m)->body,(l))) #define MKQUOTE(q,b) (NEWQUOTE(q),(q)->body=(pointer)(b)) #define MKQUOTEARG(q,t,b) (NEWQUOTEARG(q),(q)->type=(t),(q)->body=(pointer)(b)) @@ -938,7 +935,7 @@ PL(NM(q))=1,BD(NM(q))[0]=(unsigned int)(n),DN(q)=0,(q) #define MKReal(a,b) (!(a)?((b)=0):(NEWReal(b),BDY(b)=(a),(b))) #define MKAlg(b,r) \ (!(b)?((r)=0):NUM(b)?((r)=(Alg)(b)):(NEWAlg(r),BDY(r)=(Obj)(b),(r))) -#define MKDAlg(dp,den,r) (NEWDAlg(r),(r)->nm = (dp),(r)->dn=(den)) +#define MKDAlg(dp,den,r) (!(dp)?(void *)((r)=0):(void *)(NEWDAlg(r),(r)->nm = (dp),(r)->dn=(den))) #define IMM_MAX 1073741823 #define IMM_MIN -1073741823 @@ -956,6 +953,7 @@ PL(NM(q))=1,BD(NM(q))[0]=(unsigned int)(n),DN(q)=0,(q) #define NUM(p) (OID(p)==O_N) #define RAT(p) (OID(p)==O_R) #define RATN(a) (NID(a)==N_Q) +#define POLY(a) (!(a) ||(OID(a)<=O_P)) #define INT(q) (!(q)||(NUM(q)&&RATN((Num)q)&&!DN((Q)q))) #define REAL(a) (NID(a)==N_R) #define BIGFLOAT(a) (NID(a)==N_B) @@ -1318,7 +1316,7 @@ void copyn(N,int,int *); void kmulnmain(N,N,N *); int qcoefp(Obj); int qcoefr(Obj); -long get_allocwords(void); +size_t get_allocwords(void); double get_clock(void); void get_eg(struct oEGT *); void printtime(struct oEGT *,struct oEGT *,double); @@ -1423,6 +1421,8 @@ LUM LUMALLOC(int, int); BM BMALLOC(int, int); Obj ToAlg(Num); UM *berlemain(register int, UM, UM *); +void Risa_GC_set_adj(int,int); +void Risa_GC_get_adj(int *,int *); void *Risa_GC_malloc(size_t); void *Risa_GC_malloc_atomic(size_t); void *Risa_GC_realloc(void *,size_t); @@ -2472,7 +2472,7 @@ void resume_timer() ; void reset_engine() ; unsigned int get_asir_version() ; char *get_asir_distribution(); -void create_error(ERR *err,unsigned int serial,char *msg); +void create_error(ERR *err,unsigned int serial,char *msg,LIST trace); void init_lprime(); int get_lprime(int index); void create_new_lprimes(int index);