[BACK]Return to nd.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / engine

Diff for /OpenXM_contrib2/asir2000/engine/nd.h between version 1.10 and 1.11

version 1.10, 2004/10/06 11:58:52 version 1.11, 2004/10/06 12:09:19
Line 1 
Line 1 
   /* $OpenXM$ */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
 #include "ox.h"  #include "ox.h"
Line 45  typedef struct oNDV {
Line 46  typedef struct oNDV {
   
 typedef union oNDC {  typedef union oNDC {
         int m;          int m;
         Z z;          Q z;
         P p;          P p;
 } *NDC;  } *NDC;
   
Line 131  extern int *current_weyl_weight_vector;
Line 132  extern int *current_weyl_weight_vector;
 #define HDL(d) ((d)->body->dl)  #define HDL(d) ((d)->body->dl)
 #define HTD(d) (TD(HDL(d)))  #define HTD(d) (TD(HDL(d)))
 #define HCM(d) ((d)->body->c.m)  #define HCM(d) ((d)->body->c.m)
 #define HCZ(d) ((d)->body->c.z)  #define HCQ(d) ((d)->body->c.z)
 #define HCP(d) ((d)->body->c.p)  #define HCP(d) ((d)->body->c.p)
 #define CM(a) ((a)->c.m)  #define CM(a) ((a)->c.m)
 #define CZ(a) ((a)->c.z)  #define CQ(a) ((a)->c.z)
 #define CP(a) ((a)->c.p)  #define CP(a) ((a)->c.p)
 #define DL(a) ((a)->dl)  #define DL(a) ((a)->dl)
 #define SG(a) ((a)->sugar)  #define SG(a) ((a)->sugar)
Line 214  NODE append_one(NODE,int);
Line 215  NODE append_one(NODE,int);
 /* manipulation of coefficients */  /* manipulation of coefficients */
 void nd_removecont(int mod,ND p);  void nd_removecont(int mod,ND p);
 void nd_removecont2(ND p1,ND p2);  void nd_removecont2(ND p1,ND p2);
 void removecont_array(Z *c,int n);  void removecont_array(Q *c,int n);
   
 /* GeoBucket functions */  /* GeoBucket functions */
 ND normalize_pbucket(int mod,PGeoBucket g);  ND normalize_pbucket(int mod,PGeoBucket g);
 int head_pbucket(int mod,PGeoBucket g);  int head_pbucket(int mod,PGeoBucket g);
 int head_pbucket_z(PGeoBucket g);  int head_pbucket_q(PGeoBucket g);
 void add_pbucket_symbolic(PGeoBucket g,ND d);  void add_pbucket_symbolic(PGeoBucket g,ND d);
 void add_pbucket(int mod,PGeoBucket g,ND d);  void add_pbucket(int mod,PGeoBucket g,ND d);
 void free_pbucket(PGeoBucket b);  void free_pbucket(PGeoBucket b);
 void mulz_pbucket(PGeoBucket g,Z c);  void mulq_pbucket(PGeoBucket g,Q c);
 NM remove_head_pbucket_symbolic(PGeoBucket g);  NM remove_head_pbucket_symbolic(PGeoBucket g);
 PGeoBucket create_pbucket();  PGeoBucket create_pbucket();
   
Line 270  INLINE int ndl_hash_value(UINT *d);
Line 271  INLINE int ndl_hash_value(UINT *d);
 /* normal forms */  /* normal forms */
 INLINE int ndl_find_reducer(UINT *g);  INLINE int ndl_find_reducer(UINT *g);
 int nd_sp(int mod,int trace,ND_pairs p,ND *nf);  int nd_sp(int mod,int trace,ND_pairs p,ND *nf);
 int nd_nf(int mod,ND g,NDV *ps,int full,Q *dn,ND *nf);  int nd_nf(int mod,ND g,NDV *ps,int full,NDC dn,ND *nf);
 int nd_nf_pbucket(int mod,ND g,NDV *ps,int full,ND *nf);  int nd_nf_pbucket(int mod,ND g,NDV *ps,int full,ND *nf);
   
 /* finalizers */  /* finalizers */
Line 287  void nd_free_redlist();
Line 288  void nd_free_redlist();
 /* printing */  /* printing */
 void ndl_print(UINT *dl);  void ndl_print(UINT *dl);
 void nd_print(ND p);  void nd_print(ND p);
 void nd_print_z(ND p);  void nd_print_q(ND p);
 void ndp_print(ND_pairs d);  void ndp_print(ND_pairs d);
   
   
Line 306  ND nd_dup(ND p);
Line 307  ND nd_dup(ND p);
 /* ND functions */  /* ND functions */
 int ndv_check_candidate(NODE input,int obpe,int oadv,EPOS oepos,NODE cand);  int ndv_check_candidate(NODE input,int obpe,int oadv,EPOS oepos,NODE cand);
 void nd_mul_c(int mod,ND p,int mul);  void nd_mul_c(int mod,ND p,int mul);
 void nd_mul_c_z(ND p,Z mul);  void nd_mul_c_q(ND p,Q mul);
 void nd_mul_c_p(VL vl,ND p,P mul);  void nd_mul_c_p(VL vl,ND p,P mul);
 ND nd_remove_head(ND p);  ND nd_remove_head(ND p);
 ND nd_separate_head(ND p,ND *head);  ND nd_separate_head(ND p,ND *head);
Line 317  UINT *nd_compute_bound(ND p);
Line 318  UINT *nd_compute_bound(ND p);
 ND nd_copy(ND p);  ND nd_copy(ND p);
 ND nd_merge(ND p1,ND p2);  ND nd_merge(ND p1,ND p2);
 ND nd_add(int mod,ND p1,ND p2);  ND nd_add(int mod,ND p1,ND p2);
 ND nd_add_z(ND p1,ND p2);  ND nd_add_q(ND p1,ND p2);
 ND nd_add_sf(ND p1,ND p2);  ND nd_add_sf(ND p1,ND p2);
 ND nd_quo(int mod,PGeoBucket p,NDV d);  ND nd_quo(int mod,PGeoBucket p,NDV d);
 INLINE int nd_length(ND p);  INLINE int nd_length(ND p);
Line 325  NODE nd_f4_red(int m,ND_pairs sp0,UINT *s0vect,int col
Line 326  NODE nd_f4_red(int m,ND_pairs sp0,UINT *s0vect,int col
 NODE nd_f4_red_dist(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,  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);          NM_ind_pair *rvect,int *rhead,IndArray *imat,int nred);
 NODE nd_f4_red_z_main(ND_pairs sp0,int nsp,UINT *s0vect,int col,  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);          NM_ind_pair *rvect,int *rhead,IndArray *imat,int nred);
   
 /* NDV functions */  /* NDV functions */
 ND weyl_ndv_mul_nm(int mod,NM m0,NDV p);  ND weyl_ndv_mul_nm(int mod,NM m0,NDV p);
 void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *tab,int tlen);  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *tab,int tlen);
 void ndv_mul_c(int mod,NDV p,int mul);  void ndv_mul_c(int mod,NDV p,int mul);
 void ndv_mul_c_z(NDV p,Z mul);  void ndv_mul_c_q(NDV p,Q mul);
 ND ndv_mul_nm_symbolic(NM m0,NDV p);  ND ndv_mul_nm_symbolic(NM m0,NDV p);
 ND ndv_mul_nm(int mod,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);  ND ndv_mul_nmv_trunc(int mod,NMV m0,NDV p,UINT *d);
Line 342  void ndv_homogenize(NDV p,int obpe,int oadv,EPOS eops)
Line 343  void ndv_homogenize(NDV p,int obpe,int oadv,EPOS eops)
 void ndv_dehomogenize(NDV p,struct order_spec *spec);  void ndv_dehomogenize(NDV p,struct order_spec *spec);
 void ndv_removecont(int mod,NDV p);  void ndv_removecont(int mod,NDV p);
 void ndv_print(NDV p);  void ndv_print(NDV p);
 void ndv_print_z(NDV p);  void ndv_print_q(NDV p);
 void ndv_free(NDV p);  void ndv_free(NDV p);
 void ndv_save(NDV p,int index);  void ndv_save(NDV p,int index);
 NDV ndv_load(int index);  NDV ndv_load(int index);
Line 356  ND ndvtond(int mod,NDV p);
Line 357  ND ndvtond(int mod,NDV p);
 int nm_ind_pair_to_vect(int m,UINT *s0,int n,NM_ind_pair pair,UINT *r);  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);  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(int mod,UINT *s0,int n,ND d,UINT *r);
 int nd_to_vect_z(UINT *s0,int n,ND d,Z *r);  int nd_to_vect_q(UINT *s0,int n,ND d,Q *r);
 NDV vect_to_ndv_z(Z *vect,int spcol,int col,int *rhead,UINT *s0vect);  NDV vect_to_ndv_q(Q *vect,int spcol,int col,int *rhead,UINT *s0vect);
   
 /* elimination */  /* elimination */
 int nd_gauss_elim_mod(int **mat0,int *sugar,int row,int col,int md,int *colstat);  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 nd_gauss_elim_sf(int **mat0,int *sugar,int row,int col,int md,int *colstat);
 int nd_gauss_elim_z(Z **mat0,int *sugar,int row,int col,int *colstat);  int nd_gauss_elim_q(Q **mat0,int *sugar,int row,int col,int *colstat);
   
 int ndl_ww_lex_compare(UINT *a1,UINT *a2);  int ndl_ww_lex_compare(UINT *a1,UINT *a2);
   

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>