=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/parse.h,v retrieving revision 1.32 retrieving revision 1.38 diff -u -p -r1.32 -r1.38 --- OpenXM_contrib2/asir2000/parse/parse.h 2004/07/13 07:59:54 1.32 +++ OpenXM_contrib2/asir2000/parse/parse.h 2005/09/21 23:39:32 1.38 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.31 2004/07/07 07:40:19 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.37 2005/09/13 06:40:46 noro Exp $ */ # if defined(VISUAL) #include @@ -69,7 +69,7 @@ typedef enum { I_FORMULA, I_LIST, I_STR, I_NEWCOMP, I_CAR, I_CDR, I_CAST, I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_GFSNGEN, I_LOP, I_OPT, I_GETOPT, I_POINT, I_PAREN, I_MINUS, - I_NARYOP + I_NARYOP, I_UNIFY } fid; /* identifiers for statements */ @@ -78,7 +78,8 @@ typedef enum { S_BP, S_PFDEF, S_SINGLE, S_CPLX, S_IFELSE, S_FOR, S_DO, - S_BREAK, S_RETURN, S_CONTINUE + S_BREAK, S_RETURN, S_CONTINUE, + S_MODULE } sid; /* identifiers for comparison operators */ @@ -148,7 +149,9 @@ typedef struct oFUNC { char *name,*fullname; int argc; int type; + int secure; aid id; + unsigned int quote; union { void (*binf)(); struct oUSRF *usrf; @@ -221,6 +224,7 @@ struct ftab { char *name; void (*f)(); int argc; + unsigned int quote; }; #define MKPVI(a,b,c)\ @@ -343,6 +347,7 @@ void dp_ptozp_d(DP,DP *); void dp_vtod(Q *,DP,DP *); void dp_idivv_hist(Q,DP *); void dp_igcdv_hist(DP,Q *); +void dp_ptozp3(DP,Q *,DP *); void dp_ptozp2(DP,DP,DP *,DP *); void dp_ptozp(DP,DP *); void dp_nf_tab_mod(DP,LIST *,int,DP *); @@ -480,8 +485,8 @@ void closecurrentinput(void); void asir_terminate(int); void searchasirpath(char *,char **); void get_vars(Obj,VL *); -void appendbinf(NODE *,char *,void(*)(),int); -void appendubinf(char *,void(*)(),int); +void appendbinf(NODE *,char *,void(*)(),int,unsigned int); +void appendubinf(char *,void(*)(),int,unsigned int); void parif_init(void); void sysf_init(void); void makesrvar(FUNC, P *); @@ -511,15 +516,6 @@ int qcoefp(Obj); int qcoefr(Obj); int rangecheck(Obj,int); 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 appendpfins(V ,V *); void appenduf(char *,FUNC *); @@ -754,7 +750,7 @@ int generic_gauss_elim_mod(int **mat0,int row,int col, int lu_gfmmat(GFMMAT mat,unsigned int md,int *perm); int find_lhs_and_lu_mod(unsigned int **a,int row,int col, 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_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); @@ -880,12 +876,14 @@ pointer eval(FNODE f); pointer evalstat(SNODE f); pointer evalnode(NODE node); 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 eval_rec_mapf(FUNC f,FNODE a); pointer beval_rec_mapf(FUNC f,NODE node); pointer bevalf(FUNC f,NODE 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 gen_searchf(char *name,FUNC *r); void searchf(NODE fn,char *name,FUNC *r);