=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/include/ca.h,v retrieving revision 1.64 retrieving revision 1.72 diff -u -p -r1.64 -r1.72 --- OpenXM_contrib2/asir2000/include/ca.h 2006/03/16 10:08:21 1.64 +++ OpenXM_contrib2/asir2000/include/ca.h 2008/08/11 16:58:30 1.72 @@ -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.63 2006/02/08 02:11:19 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/include/ca.h,v 1.71 2008/08/11 16:51:30 ohara Exp $ */ #include #include @@ -93,6 +93,8 @@ typedef void * pointer; #endif #endif +#define TODO printf("%s: not implemented!\n", __func__) + #define COPY(a,b) ((b)=(a)) #define FREEN(p) #define FREEQ(p) @@ -455,7 +457,7 @@ typedef struct oNBP { typedef struct oNBM { int d; - Q c; + P c; unsigned int *b; } *NBM; @@ -938,7 +940,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 +958,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) @@ -2639,3 +2642,8 @@ void addnbp(VL vl,NBP p1,NBP p2, NBP *rp); void mulnbp(VL vl,NBP p1,NBP p2, NBP *rp); void pwrnbp(VL vl,NBP p1,Q n, NBP *rp); int compnbp(VL vl,NBP p1,NBP p2); + +#if defined(PARI23) +#define prec precreal +#define mppgcd(a,b) (gcdii((a),(b))) +#endif