version 1.28, 2012/08/27 05:38:00 |
version 1.37, 2017/09/14 01:34:54 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.h,v 1.27 2010/04/16 07:13:42 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.h,v 1.36 2017/02/21 09:20:23 noro Exp $ */ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
#include "ox.h" |
#include "ox.h" |
|
|
#include <time.h> |
#include <time.h> |
|
|
#if defined(__GNUC__) |
#if defined(__GNUC__) |
#define INLINE inline |
#define INLINE static inline |
#elif defined(VISUAL) |
#elif defined(VISUAL) || defined(__MINGW32__) |
#define INLINE __inline |
#define INLINE __inline |
#else |
#else |
#define INLINE |
#define INLINE |
Line 47 typedef struct oNDV { |
|
Line 47 typedef struct oNDV { |
|
typedef union oNDC { |
typedef union oNDC { |
int m; |
int m; |
Q z; |
Q z; |
|
LM lm; |
|
GZ gz; |
P p; |
P p; |
R r; |
R r; |
DAlg a; |
DAlg a; |
Line 78 typedef struct oND_pairs { |
|
Line 80 typedef struct oND_pairs { |
|
struct oND_pairs *next; |
struct oND_pairs *next; |
int i1,i2; |
int i1,i2; |
int sugar; |
int sugar; |
|
int sugar2; |
UINT lcm[1]; |
UINT lcm[1]; |
} *ND_pairs; |
} *ND_pairs; |
|
|
Line 141 extern int *current_module_weight_vector; |
|
Line 144 extern int *current_module_weight_vector; |
|
#define HTD(d) (TD(HDL(d))) |
#define HTD(d) (TD(HDL(d))) |
#define HCU(d) ((d)->body->c) |
#define HCU(d) ((d)->body->c) |
#define HCM(d) ((d)->body->c.m) |
#define HCM(d) ((d)->body->c.m) |
|
#define HCLM(d) ((d)->body->c.lm) |
#define HCQ(d) ((d)->body->c.z) |
#define HCQ(d) ((d)->body->c.z) |
|
#define HCZ(d) ((d)->body->c.gz) |
#define HCP(d) ((d)->body->c.p) |
#define HCP(d) ((d)->body->c.p) |
#define HCA(d) ((d)->body->c.a) |
#define HCA(d) ((d)->body->c.a) |
#define CM(x) ((x)->c.m) |
#define CM(x) ((x)->c.m) |
|
#define CLM(x) ((x)->c.lm) |
#define CQ(x) ((x)->c.z) |
#define CQ(x) ((x)->c.z) |
|
#define CZ(x) ((x)->c.gz) |
#define CP(x) ((x)->c.p) |
#define CP(x) ((x)->c.p) |
#define CA(x) ((x)->c.a) |
#define CA(x) ((x)->c.a) |
#define DL(x) ((x)->dl) |
#define DL(x) ((x)->dl) |
Line 253 ND_pairs crit_B( ND_pairs d, int s ); |
|
Line 260 ND_pairs crit_B( ND_pairs d, int s ); |
|
ND_pairs crit_M( ND_pairs d1 ); |
ND_pairs crit_M( ND_pairs d1 ); |
ND_pairs crit_F( ND_pairs d1 ); |
ND_pairs crit_F( ND_pairs d1 ); |
int crit_2( int dp1, int dp2 ); |
int crit_2( int dp1, int dp2 ); |
int ndv_newps(int m,NDV a,NDV aq); |
int ndv_newps(int m,NDV a,NDV aq,int f4); |
|
|
/* top level functions */ |
/* 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(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 f4,struct order_spec *ord,LIST *rp); |
NODE nd_f4(int m,int **indp); |
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(int m,int ishomo,int checkonly,int gensyz,int **indp); |
NODE nd_gb_trace(int m,int ishomo,int **indp); |
NODE nd_gb_trace(int m,int ishomo,int **indp); |
NODE nd_f4_trace(int m,int **indp); |
NODE nd_f4_trace(int m,int **indp); |
Line 316 EPOS nd_create_epos(struct order_spec *ord); |
|
Line 323 EPOS nd_create_epos(struct order_spec *ord); |
|
int nd_get_exporigin(struct order_spec *ord); |
int nd_get_exporigin(struct order_spec *ord); |
void ndv_mod(int mod,NDV p); |
void ndv_mod(int mod,NDV p); |
NDV ndv_dup(int mod,NDV p); |
NDV ndv_dup(int mod,NDV p); |
|
NDV ndv_symbolic(int mod,NDV p); |
ND nd_dup(ND p); |
ND nd_dup(ND p); |
|
|
/* ND functions */ |
/* ND functions */ |
Line 325 void nd_mul_c_q(ND p,P mul); |
|
Line 333 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); |
int nd_length(ND p); |
INLINE int nd_length(ND p); |
void nd_append_red(UINT *d,int i); |
void nd_append_red(UINT *d,int i); |
UINT *ndv_compute_bound(NDV p); |
UINT *ndv_compute_bound(NDV p); |
UINT *nd_compute_bound(ND p); |
UINT *nd_compute_bound(ND p); |
Line 340 NODE nd_f4_red(int m,ND_pairs sp0,int trace,UINT *s0ve |
|
Line 348 NODE nd_f4_red(int m,ND_pairs sp0,int trace,UINT *s0ve |
|
NODE nd_f4_red_dist(int m,ND_pairs sp0,UINT *s0vect,int col,NODE rp0, ND_pairs *nz); |
NODE nd_f4_red_dist(int m,ND_pairs sp0,UINT *s0vect,int col,NODE rp0, ND_pairs *nz); |
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,ND_pairs *nz); |
NM_ind_pair *rvect,int *rhead,IndArray *imat,int nred,ND_pairs *nz); |
|
NODE nd_f4_red_mod_main(int m,ND_pairs sp0,int nsp,UINT *s0vect,int col, |
|
NM_ind_pair *rvect,int *rhead,IndArray *imat,int nred,ND_pairs *nz); |
|
NODE nd_f4_red_sf_main(int m,ND_pairs sp0,int nsp,UINT *s0vect,int col, |
|
NM_ind_pair *rvect,int *rhead,IndArray *imat,int nred,ND_pairs *nz); |
NODE nd_f4_red_q_main(ND_pairs sp0,int nsp,int trace,UINT *s0vect,int col, |
NODE nd_f4_red_q_main(ND_pairs sp0,int nsp,int trace,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_gz_main(ND_pairs sp0,int nsp,int trace,UINT *s0vect,int col, |
|
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); |
Line 369 P ndvtop(int mod,VL vl,VL dvl,NDV p); |
|
Line 383 P ndvtop(int mod,VL vl,VL dvl,NDV p); |
|
NDV ndtondv(int mod,ND p); |
NDV ndtondv(int mod,ND p); |
ND ndvtond(int mod,NDV p); |
ND ndvtond(int mod,NDV p); |
Q *nm_ind_pair_to_vect(int m,UINT *s0,int n,NM_ind_pair pair); |
Q *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,NM_ind_pair pair); |
IndArray nm_ind_pair_to_vect_compress(int m,UINT *s0,int n,int *s0hash,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_q(UINT *s0,int n,ND d,Q *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); |
NDV vect_to_ndv_q(Q *vect,int spcol,int col,int *rhead,UINT *s0vect); |