version 1.23, 2003/10/19 02:54:41 |
version 1.39, 2005/09/30 01:35:25 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.22 2003/08/23 01:42:52 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.38 2005/09/21 23:39:32 noro Exp $ |
*/ |
*/ |
# if defined(VISUAL) |
# if defined(VISUAL) |
#include <time.h> |
#include <time.h> |
|
|
I_FUNC, I_FUNC_OPT, I_IFUNC, I_MAP, I_RECMAP, I_PFDERIV, |
I_FUNC, I_FUNC_OPT, I_IFUNC, I_MAP, I_RECMAP, I_PFDERIV, |
I_ANS, I_PVAR, I_ASSPVAR, |
I_ANS, I_PVAR, I_ASSPVAR, |
I_FORMULA, I_LIST, I_STR, I_NEWCOMP, I_CAR, I_CDR, I_CAST, |
I_FORMULA, I_LIST, I_STR, I_NEWCOMP, I_CAR, I_CDR, I_CAST, |
I_COM, I_PROC, I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_GFSNGEN, |
I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_GFSNGEN, |
I_LOP, I_OPT, I_GETOPT, I_POINT, I_QUOTE, I_PAREN, I_MINUS |
I_LOP, I_OPT, I_GETOPT, I_POINT, I_PAREN, I_MINUS, |
|
I_NARYOP, I_CONS |
} fid; |
} fid; |
|
|
/* identifiers for statements */ |
/* identifiers for statements */ |
|
|
S_BP, S_PFDEF, |
S_BP, S_PFDEF, |
S_SINGLE, S_CPLX, |
S_SINGLE, S_CPLX, |
S_IFELSE, S_FOR, S_DO, |
S_IFELSE, S_FOR, S_DO, |
S_BREAK, S_RETURN, S_CONTINUE |
S_BREAK, S_RETURN, S_CONTINUE, |
|
S_MODULE |
} sid; |
} sid; |
|
|
/* identifiers for comparison operators */ |
/* identifiers for comparison operators */ |
|
|
int token; |
int token; |
}; |
}; |
|
|
|
typedef struct fid_spec { |
|
fid id; |
|
farg_type type[10]; |
|
} *fid_spec_p; |
|
|
typedef struct oARF { |
typedef struct oARF { |
char *name; |
char *name; |
void (*fp)(); |
void (*fp)(); |
Line 142 typedef struct oFUNC { |
|
Line 149 typedef struct oFUNC { |
|
char *name,*fullname; |
char *name,*fullname; |
int argc; |
int argc; |
int type; |
int type; |
|
int secure; |
aid id; |
aid id; |
|
unsigned int quote; |
union { |
union { |
void (*binf)(); |
void (*binf)(); |
struct oUSRF *usrf; |
struct oUSRF *usrf; |
|
|
char *name; |
char *name; |
void (*f)(); |
void (*f)(); |
int argc; |
int argc; |
|
unsigned int quote; |
}; |
}; |
|
|
#define MKPVI(a,b,c)\ |
#define MKPVI(a,b,c)\ |
Line 300 extern NODE usrf,sysf,noargsysf,ubinf,parif,ONENODE; |
|
Line 310 extern NODE usrf,sysf,noargsysf,ubinf,parif,ONENODE; |
|
extern int nextbp,nextbplevel; |
extern int nextbp,nextbplevel; |
extern int Verbose; |
extern int Verbose; |
extern int do_quiet; |
extern int do_quiet; |
|
extern SYMBOL Symbol_grlex, Symbol_glex, Symbol_lex; |
|
extern NODE current_option; |
|
|
#if defined(VISUAL_LIB) |
#if defined(VISUAL_LIB) |
#include <w_stdio.h> |
#include <w_stdio.h> |
Line 335 void dp_ptozp_d(DP,DP *); |
|
Line 347 void dp_ptozp_d(DP,DP *); |
|
void dp_vtod(Q *,DP,DP *); |
void dp_vtod(Q *,DP,DP *); |
void dp_idivv_hist(Q,DP *); |
void dp_idivv_hist(Q,DP *); |
void dp_igcdv_hist(DP,Q *); |
void dp_igcdv_hist(DP,Q *); |
|
void dp_ptozp3(DP,Q *,DP *); |
void dp_ptozp2(DP,DP,DP *,DP *); |
void dp_ptozp2(DP,DP,DP *,DP *); |
void dp_ptozp(DP,DP *); |
void dp_ptozp(DP,DP *); |
void dp_nf_tab_mod(DP,LIST *,int,DP *); |
void dp_nf_tab_mod(DP,LIST *,int,DP *); |
Line 370 void dp_mod(DP,int,NODE,DP *); |
|
Line 383 void dp_mod(DP,int,NODE,DP *); |
|
void dp_prim_mod(DP,int,DP *); |
void dp_prim_mod(DP,int,DP *); |
void dp_prim(DP,DP *); |
void dp_prim(DP,DP *); |
void heu_nezgcdnpz(VL,P *,int,P *); |
void heu_nezgcdnpz(VL,P *,int,P *); |
void homogenize_order(struct order_spec *,int,struct order_spec *); |
void homogenize_order(struct order_spec *,int,struct order_spec **); |
int create_order_spec(Obj,struct order_spec *); |
int create_order_spec(VL,Obj,struct order_spec **); |
|
|
int dl_equal(int,DL,DL); |
int dl_equal(int,DL,DL); |
void qltozl(Q *,int,Q *); |
void qltozl(Q *,int,Q *); |
Line 472 void closecurrentinput(void); |
|
Line 485 void closecurrentinput(void); |
|
void asir_terminate(int); |
void asir_terminate(int); |
void searchasirpath(char *,char **); |
void searchasirpath(char *,char **); |
void get_vars(Obj,VL *); |
void get_vars(Obj,VL *); |
void appendbinf(NODE *,char *,void(*)(),int); |
void appendbinf(NODE *,char *,void(*)(),int,unsigned int); |
void appendubinf(char *,void(*)(),int); |
void appendubinf(char *,void(*)(),int,unsigned int); |
void parif_init(void); |
void parif_init(void); |
void sysf_init(void); |
void sysf_init(void); |
void makesrvar(FUNC, P *); |
void makesrvar(FUNC, P *); |
Line 503 int qcoefp(Obj); |
|
Line 516 int qcoefp(Obj); |
|
int qcoefr(Obj); |
int qcoefr(Obj); |
int rangecheck(Obj,int); |
int rangecheck(Obj,int); |
int structtoindex(char *); |
int structtoindex(char *); |
pointer eval(FNODE); |
|
pointer evalf(FUNC,FNODE,FNODE); |
|
pointer bevalf(FUNC,NODE); |
|
pointer evalif(FNODE,FNODE); |
|
pointer evalnode(NODE node); |
|
pointer evalpf(PF,NODE); |
|
pointer evalparif(FUNC,NODE); |
|
pointer evalpv(int,FNODE,pointer); |
|
pointer evalstat(SNODE f); |
|
void _mkpfins(PF ,Obj *,V *); |
void _mkpfins(PF ,Obj *,V *); |
void appendpfins(V ,V *); |
void appendpfins(V ,V *); |
void appenduf(char *,FUNC *); |
void appenduf(char *,FUNC *); |
Line 601 int dp_redble(DP p1,DP p2); |
|
Line 605 int dp_redble(DP p1,DP p2); |
|
void sortbynm(Q *w,int n); |
void sortbynm(Q *w,int n); |
int comp_nm(Q *a,Q *b); |
int comp_nm(Q *a,Q *b); |
void qltozl(Q *w,int n,Q *dvr); |
void qltozl(Q *w,int n,Q *dvr); |
void homogenize_order(struct order_spec *old,int n,struct order_spec *new); |
|
void dp_rat(DP p,DP *rp); |
void dp_rat(DP p,DP *rp); |
void dp_mod(DP p,int mod,NODE subst,DP *rp); |
void dp_mod(DP p,int mod,NODE subst,DP *rp); |
void dp_dehomo(DP p,DP *rp); |
void dp_dehomo(DP p,DP *rp); |
void dp_homo(DP p,DP *rp); |
void dp_homo(DP p,DP *rp); |
int create_order_spec(Obj obj,struct order_spec *spec); |
|
void dp_nf_tab_mod(DP p,LIST *tab,int mod,DP *rp); |
void dp_nf_tab_mod(DP p,LIST *tab,int mod,DP *rp); |
void dp_lnf_mod(DP p1,DP p2,NODE g,int mod,DP *r1p,DP *r2p); |
void dp_lnf_mod(DP p1,DP p2,NODE g,int mod,DP *r1p,DP *r2p); |
void dp_lnf_f(DP p1,DP p2,NODE g,DP *r1p,DP *r2p); |
void dp_lnf_f(DP p1,DP p2,NODE g,DP *r1p,DP *r2p); |
Line 748 int generic_gauss_elim_mod(int **mat0,int row,int col, |
|
Line 750 int generic_gauss_elim_mod(int **mat0,int row,int col, |
|
int lu_gfmmat(GFMMAT mat,unsigned int md,int *perm); |
int lu_gfmmat(GFMMAT mat,unsigned int md,int *perm); |
int find_lhs_and_lu_mod(unsigned int **a,int row,int col, |
int find_lhs_and_lu_mod(unsigned int **a,int row,int col, |
unsigned int md,int **rinfo,int **cinfo); |
unsigned int md,int **rinfo,int **cinfo); |
void solve_by_lu_mod(int **a,int n,int md,int **b,int l); |
void solve_by_lu_mod(int **a,int n,int md,int **b,int l,int normalize); |
int gauss_elim_mod1(int **mat,int row,int col,int md); |
int gauss_elim_mod1(int **mat,int row,int col,int md); |
int gauss_elim_geninv_mod(unsigned int **mat,int row,int col,int md); |
int gauss_elim_geninv_mod(unsigned int **mat,int row,int col,int md); |
void solve_by_lu_gfmmat(GFMMAT lu,unsigned int md,unsigned int *b,unsigned int *x); |
void solve_by_lu_gfmmat(GFMMAT lu,unsigned int md,unsigned int *b,unsigned int *x); |
Line 793 void chsgnquote(QUOTE a,QUOTE *c); |
|
Line 795 void chsgnquote(QUOTE a,QUOTE *c); |
|
void objtoquote(Obj a,QUOTE *c); |
void objtoquote(Obj a,QUOTE *c); |
void polytoquote(P a,QUOTE *c); |
void polytoquote(P a,QUOTE *c); |
void dptoquote(DP a,QUOTE *c); |
void dptoquote(DP a,QUOTE *c); |
void dctoquote(DCP dc,QUOTE v,QUOTE *c); |
void dctoquote(DCP dc,QUOTE v,QUOTE *c,int *sgn); |
void mptoquote(MP m,int n,QUOTE *c); |
void mptoquote(MP m,int n,QUOTE *c,int *sgn); |
void vartoquote(V v,QUOTE *c); |
void vartoquote(V v,QUOTE *c); |
void fnodetotree(FNODE f,LIST *rp); |
void fnodetotree(FNODE f,LIST *rp); |
FNODE eval_pvar_in_fnode(FNODE f); |
FNODE eval_pvar_in_fnode(FNODE f); |
Line 874 pointer eval(FNODE f); |
|
Line 876 pointer eval(FNODE f); |
|
pointer evalstat(SNODE f); |
pointer evalstat(SNODE f); |
pointer evalnode(NODE node); |
pointer evalnode(NODE node); |
pointer evalf(FUNC f,FNODE a,FNODE opt); |
pointer evalf(FUNC f,FNODE a,FNODE opt); |
|
pointer evalparif(FUNC f,NODE a); |
|
pointer evalf_deriv(FUNC f,FNODE a,FNODE deriv); |
pointer evalmapf(FUNC f,FNODE a); |
pointer evalmapf(FUNC f,FNODE a); |
pointer eval_rec_mapf(FUNC f,FNODE a); |
pointer eval_rec_mapf(FUNC f,FNODE a); |
pointer beval_rec_mapf(FUNC f,NODE node); |
pointer beval_rec_mapf(FUNC f,NODE node); |
pointer bevalf(FUNC f,NODE a); |
pointer bevalf(FUNC f,NODE a); |
pointer evalif(FNODE f,FNODE a); |
pointer evalif(FNODE f,FNODE a); |
pointer evalpf(PF pf,NODE args); |
pointer evalpf(PF pf,NODE args,NODE deriv); |
void evalnodebody(NODE sn,NODE *dnp); |
void evalnodebody(NODE sn,NODE *dnp); |
void gen_searchf(char *name,FUNC *r); |
void gen_searchf(char *name,FUNC *r); |
void searchf(NODE fn,char *name,FUNC *r); |
void searchf(NODE fn,char *name,FUNC *r); |