=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/nd.h,v retrieving revision 1.2 retrieving revision 1.8 diff -u -p -r1.2 -r1.8 --- OpenXM_contrib2/asir2000/engine/nd.h 2004/03/17 08:16:24 1.2 +++ OpenXM_contrib2/asir2000/engine/nd.h 2004/09/21 02:23:49 1.8 @@ -258,6 +258,7 @@ INLINE int ndl_reducible(UINT *d1,UINT *d2); INLINE int ndl_lex_compare(UINT *d1,UINT *d2); INLINE int ndl_block_compare(UINT *d1,UINT *d2); INLINE int ndl_matrix_compare(UINT *d1,UINT *d2); +INLINE int ndl_composite_compare(UINT *d1,UINT *d2); INLINE int ndl_equal(UINT *d1,UINT *d2); INLINE void ndl_copy(UINT *d1,UINT *d2); INLINE void ndl_zero(UINT *d); @@ -292,7 +293,7 @@ void ndp_print(ND_pairs d); /* setup, reconstruct */ void nd_init_ord(struct order_spec *spec); -ND_pairs nd_reconstruct(int mod,int trace,ND_pairs ndp); +ND_pairs nd_reconstruct(int trace,ND_pairs ndp); void ndv_setup(int mod,int trace,NODE f); void nd_setup_parameters(int nvar,int max); BlockMask nd_create_blockmask(struct order_spec *ord); @@ -312,14 +313,20 @@ ND nd_separate_head(ND p,ND *head); int nd_length(ND p); void nd_append_red(UINT *d,int i); UINT *ndv_compute_bound(NDV p); +UINT *nd_compute_bound(ND p); ND nd_copy(ND p); ND nd_merge(ND p1,ND p2); ND nd_add(int mod,ND p1,ND p2); ND nd_add_q(ND p1,ND p2); ND nd_add_sf(ND p1,ND p2); +ND nd_quo(int mod,PGeoBucket p,NDV d); INLINE int nd_length(ND p); NODE nd_f4_red(int m,ND_pairs sp0,UINT *s0vect,int col,NODE rp0); NODE nd_f4_red_dist(int m,ND_pairs sp0,UINT *s0vect,int col,NODE rp0); +NODE nd_f4_red_main(int m,ND_pairs sp0,int nsp,UINT *s0vect,int col, + NM_ind_pair *rvect,int *rhead,IndArray *imat,int nred); +NODE nd_f4_red_q_main(ND_pairs sp0,int nsp,UINT *s0vect,int col, + NM_ind_pair *rvect,int *rhead,IndArray *imat,int nred); /* NDV functions */ ND weyl_ndv_mul_nm(int mod,NM m0,NDV p); @@ -328,6 +335,7 @@ void ndv_mul_c(int mod,NDV p,int mul); void ndv_mul_c_q(NDV p,Q mul); ND ndv_mul_nm_symbolic(NM m0,NDV p); ND ndv_mul_nm(int mod,NM m0,NDV p); +ND ndv_mul_nmv_trunc(int mod,NMV m0,NDV p,UINT *d); void ndv_realloc(NDV p,int obpe,int oadv,EPOS oepos); NDV ndv_dup_realloc(NDV p,int obpe,int oadv,EPOS oepos); void ndv_homogenize(NDV p,int obpe,int oadv,EPOS eops); @@ -348,10 +356,13 @@ ND ndvtond(int mod,NDV p); int nm_ind_pair_to_vect(int m,UINT *s0,int n,NM_ind_pair pair,UINT *r); IndArray nm_ind_pair_to_vect_compress(int m,UINT *s0,int n,NM_ind_pair pair); 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,Q *r); +NDV vect_to_ndv_q(Q *vect,int spcol,int col,int *rhead,UINT *s0vect); /* elimination */ int nd_gauss_elim_mod(int **mat0,int *sugar,int row,int col,int md,int *colstat); int nd_gauss_elim_sf(int **mat0,int *sugar,int row,int col,int md,int *colstat); int ndl_ww_lex_compare(UINT *a1,UINT *a2); +