=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2018/include/ca.h,v retrieving revision 1.5 retrieving revision 1.8 diff -u -p -r1.5 -r1.8 --- OpenXM_contrib2/asir2018/include/ca.h 2018/10/01 05:49:06 1.5 +++ OpenXM_contrib2/asir2018/include/ca.h 2019/03/28 06:46:03 1.8 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2018/include/ca.h,v 1.4 2018/09/28 08:20:29 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2018/include/ca.h,v 1.7 2018/10/02 09:06:15 noro Exp $ */ #include #include @@ -978,8 +978,8 @@ if(!(r)){NEWDMM(r);(c)=(r);}else{NEWDMM(NEXT(c));(c)=N #define DUPZ(p,q) (NEWZ(q),BDY(q)=BDY(p)) #define DUPQ(p,q) (NEWQ(q),BDY(q)=BDY(p)) -#define STOZ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_si(BDY(q),n))) -#define UTOZ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_ui(BDY(q),n))) +#define STOZ(n,q) ((!(n))?(void)((q)=0):(NEWZ(q),mpz_set_si(BDY(q),n))) +#define UTOZ(n,q) ((!(n))?(void)((q)=0):(NEWZ(q),mpz_set_ui(BDY(q),n))) /* for initializing static object */ #define STOZ0(n,q) (OID(q)=O_N,NID(q)=N_Q,(q)->z=1,mpz_init(BDY(q)),mpz_set_si(BDY(q),n)) @@ -1021,6 +1021,8 @@ if(!(r)){NEWDMM(r);(c)=(r);}else{NEWDMM(NEXT(c));(c)=N #define UNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==1)) #define MUNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==-1)) #define EVENZ(n) ((!(n))||(INT(n)&&mpz_tstbit(((Z)(n))->body,0)==0)) +#define UNIMPZ(q) (mpz_cmp_si(q,1)==0) +#define MUNIMPZ(q) (mpz_cmp_si(q,-1)==0) /* special macros for private memory management */ @@ -2694,6 +2696,8 @@ void lmtolf(LM f,Z *b); mp_limb_t get_lprime64(int index); mp_limb_t **almat64(int,int); mp_limb_t remqi64(Q n,mp_limb_t m); +int generic_gauss_elim64(MAT mat,MAT *nm,Z *dn,int **rindp,int **cindp); +int generic_gauss_elim_mod64(mp_limb_t **mat,int row,int col,mp_limb_t md,int *colstat); #endif #if defined(VISUAL) || defined(__MINGW32__)