version 1.15, 2006/06/05 08:11:10 |
version 1.20, 2009/01/05 02:08:18 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.h,v 1.14 2006/04/17 04:35:20 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.h,v 1.19 2009/01/04 05:44:51 noro Exp $ */ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
#include "ox.h" |
#include "ox.h" |
Line 48 typedef union oNDC { |
|
Line 48 typedef union oNDC { |
|
int m; |
int m; |
Q z; |
Q z; |
P p; |
P p; |
|
R r; |
DAlg a; |
DAlg a; |
} *NDC; |
} *NDC; |
|
|
Line 127 extern char *Demand; |
|
Line 128 extern char *Demand; |
|
extern VL CO; |
extern VL CO; |
extern int Top,Reverse,DP_Print,dp_nelim,do_weyl,NoSugar; |
extern int Top,Reverse,DP_Print,dp_nelim,do_weyl,NoSugar; |
extern int *current_weyl_weight_vector; |
extern int *current_weyl_weight_vector; |
|
extern int *current_module_weight_vector; |
|
|
/* fundamental macros */ |
/* fundamental macros */ |
#define TD(d) (d[0]) |
#define TD(d) (d[0]) |
Line 151 extern int *current_weyl_weight_vector; |
|
Line 153 extern int *current_weyl_weight_vector; |
|
|
|
#define GET_EXP_OLD(d,a) (((d)[oepos[a].i]>>oepos[a].s)&omask0) |
#define GET_EXP_OLD(d,a) (((d)[oepos[a].i]>>oepos[a].s)&omask0) |
#define PUT_EXP_OLD(r,a,e) ((r)[oepos[a].i] |= ((e)<<oepos[a].s)) |
#define PUT_EXP_OLD(r,a,e) ((r)[oepos[a].i] |= ((e)<<oepos[a].s)) |
|
#define MPOS(d) (d[nd_mpos]) |
|
|
#define ROUND_FOR_ALIGN(s) ((((s)+sizeof(void *)-1)/sizeof(void *))*sizeof(void *)) |
#define ROUND_FOR_ALIGN(s) ((((s)+sizeof(void *)-1)/sizeof(void *))*sizeof(void *)) |
|
|
Line 218 NODE append_one(NODE,int); |
|
Line 221 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(Q *c,int n); |
void removecont_array(P *c,int n,int full); |
|
void removecont_array_q(Q *c,int n); |
|
|
/* GeoBucket functions */ |
/* GeoBucket functions */ |
ND normalize_pbucket(int mod,PGeoBucket g); |
ND normalize_pbucket(int mod,PGeoBucket g); |
Line 275 INLINE int ndl_hash_value(UINT *d); |
|
Line 279 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,NDC dn,ND *nf); |
int nd_nf(int mod,ND d,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 299 void ndp_print(ND_pairs d); |
|
Line 303 void ndp_print(ND_pairs d); |
|
/* setup, reconstruct */ |
/* setup, reconstruct */ |
void nd_init_ord(struct order_spec *spec); |
void nd_init_ord(struct order_spec *spec); |
ND_pairs nd_reconstruct(int trace,ND_pairs ndp); |
ND_pairs nd_reconstruct(int trace,ND_pairs ndp); |
void ndv_setup(int mod,int trace,NODE f,int dont_sort); |
void ndv_setup(int mod,int trace,NODE f,int dont_sort,int dont_removecont); |
void nd_setup_parameters(int nvar,int max); |
void nd_setup_parameters(int nvar,int max); |
BlockMask nd_create_blockmask(struct order_spec *ord); |
BlockMask nd_create_blockmask(struct order_spec *ord); |
EPOS nd_create_epos(struct order_spec *ord); |
EPOS nd_create_epos(struct order_spec *ord); |
Line 311 ND nd_dup(ND p); |
|
Line 315 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_q(ND p,Q mul); |
void nd_mul_c_q(ND p,P 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); |