=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2018/engine/nd.h,v retrieving revision 1.2 retrieving revision 1.7 diff -u -p -r1.2 -r1.7 --- OpenXM_contrib2/asir2018/engine/nd.h 2018/09/25 21:51:21 1.2 +++ OpenXM_contrib2/asir2018/engine/nd.h 2019/08/21 00:37:47 1.7 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM_contrib2/asir2018/engine/nd.h,v 1.1 2018/09/19 05:45:07 noro Exp $ */ +/* $OpenXM: OpenXM_contrib2/asir2018/engine/nd.h,v 1.6 2018/10/23 04:53:38 noro Exp $ */ #include "ca.h" #include "parse.h" #include "ox.h" @@ -45,10 +45,9 @@ typedef struct oNDV { } *NDV; typedef union oNDC { - int m; + long m; Z z; LM lm; - Z gz; P p; R r; DAlg a; @@ -145,14 +144,12 @@ extern int *current_module_weight_vector; #define HCU(d) ((d)->body->c) #define HCM(d) ((d)->body->c.m) #define HCLM(d) ((d)->body->c.lm) -#define HCQ(d) ((d)->body->c.z) -#define HCZ(d) ((d)->body->c.gz) +#define HCZ(d) ((d)->body->c.z) #define HCP(d) ((d)->body->c.p) #define HCA(d) ((d)->body->c.a) #define CM(x) ((x)->c.m) #define CLM(x) ((x)->c.lm) -#define CQ(x) ((x)->c.z) -#define CZ(x) ((x)->c.gz) +#define CZ(x) ((x)->c.z) #define CP(x) ((x)->c.p) #define CA(x) ((x)->c.a) #define DL(x) ((x)->dl) @@ -264,7 +261,7 @@ int ndv_newps(int m,NDV a,NDV aq,int f4); /* top level functions */ void nd_gr(LIST f,LIST v,int m,int homo,int retdp,int f4,struct order_spec *ord,LIST *rp); -void nd_gr_trace(LIST f,LIST v,int trace,int homo,int f4,struct order_spec *ord,LIST *rp); +void nd_gr_trace(LIST f,LIST v,int trace,int homo,int retdp,int f4,struct order_spec *ord,LIST *rp); NODE nd_f4(int m,int checkonly,int **indp); NODE nd_gb(int m,int ishomo,int checkonly,int gensyz,int **indp); NODE nd_gb_trace(int m,int ishomo,int **indp); @@ -293,7 +290,7 @@ INLINE int ndl_hash_value(UINT *d); INLINE int ndl_find_reducer(UINT *g); int nd_sp(int mod,int trace,ND_pairs p,ND *nf); int nd_sp_f4(int m,int trace,ND_pairs l,PGeoBucket bucket); -int nd_nf(int mod,ND d,ND g,NDV *ps,int full,NDC dn,ND *nf); +int nd_nf(int mod,ND d,ND g,NDV *ps,int full,ND *nf); int nd_nf_pbucket(int mod,ND g,NDV *ps,int full,ND *nf); /* finalizers */ @@ -386,7 +383,7 @@ P ndvtop(int mod,VL vl,VL dvl,NDV p); NDV ndtondv(int mod,ND p); ND ndvtond(int mod,NDV p); Z *nm_ind_pair_to_vect(int m,UINT *s0,int n,NM_ind_pair pair); -IndArray nm_ind_pair_to_vect_compress(int m,UINT *s0,int n,int *s0hash,NM_ind_pair pair); +IndArray nm_ind_pair_to_vect_compress(int m,UINT *s0,int n,NM_ind_pair pair,int prevh); int nd_to_vect(int mod,UINT *s0,int n,ND d,UINT *r); int nd_to_vect_q(UINT *s0,int n,ND d,Z *r); NDV vect_to_ndv_q(Z *vect,int spcol,int col,int *rhead,UINT *s0vect); @@ -398,12 +395,12 @@ int nd_gauss_elim_q(Z **mat0,int *sugar,int row,int co int ndl_ww_lex_compare(UINT *a1,UINT *a2); -#if defined(__GNUC__) && SIZEOF_LONG == 8 -int nd_to_vect64(int mod,UINT *s0,int n,ND d,U64 *r); -int ndv_reduce_vect64(int m,U64 *svect,U64 *cvect,int col,IndArray *imat,NM_ind_pair *rp0,int nred); -NDV vect64_to_ndv(U64 *vect,int spcol,int col,int *rhead,UINT *s0vect); -void red_by_vect64(int m, U64 *p,unsigned int *c,U64 *r,unsigned int hc,int len); -int nd_gauss_elim_mod64(U64 **mat,int *sugar,ND_pairs *spactive,int row,int col,int md,int *colstat); +#if SIZEOF_LONG == 8 +int nd_to_vect64(int mod,UINT *s0,int n,ND d,mp_limb_t *r); +int ndv_reduce_vect64(int m,mp_limb_t *svect,mp_limb_t *cvect,int col,IndArray *imat,NM_ind_pair *rp0,int nred); +NDV vect64_to_ndv(mp_limb_t *vect,int spcol,int col,int *rhead,UINT *s0vect); +void red_by_vect64(int m, mp_limb_t *p,unsigned int *c,mp_limb_t *r,unsigned int hc,int len); +int nd_gauss_elim_mod64(mp_limb_t **mat,int *sugar,ND_pairs *spactive,int row,int col,int md,int *colstat); #endif