version 1.15, 2001/10/09 01:36:24 |
version 1.59, 2020/10/04 03:14:09 |
|
|
* 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.14 2001/09/05 09:01:28 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.58 2019/11/12 10:52:05 kondoh Exp $ |
*/ |
*/ |
# if defined(VISUAL) |
# if defined(VISUAL) || defined(__MINGW32__) |
#include <time.h> |
#include <time.h> |
#else |
#else |
#include <sys/time.h> |
#include <sys/time.h> |
|
|
#define ABS(a) ((a)>0?(a):-(a)) |
#define ABS(a) ((a)>0?(a):-(a)) |
#endif |
#endif |
|
|
|
#include <math.h> |
|
#include <ctype.h> |
|
|
/* identifiers for expressions */ |
/* identifiers for expressions */ |
|
|
typedef enum { |
typedef enum { |
I_BOP, I_COP, I_AND, I_OR, I_NOT, I_CE, |
I_BOP, I_COP, I_AND, I_OR, I_NOT, I_CE, |
I_PRESELF, I_POSTSELF, |
I_PRESELF, I_POSTSELF, |
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, I_FUNC_QARG, I_FUNC_HEAD, I_EVM |
} fid; |
} fid; |
|
|
/* identifiers for statements */ |
/* identifiers for statements */ |
|
|
typedef enum { |
typedef enum { |
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 */ |
Line 96 typedef enum { A_UNDEF, A_BIN, A_USR, A_PURE, A_PARI } |
|
Line 101 typedef enum { A_UNDEF, A_BIN, A_USR, A_PURE, A_PARI } |
|
|
|
typedef enum { V_IND, V_UC, V_PF, V_SR } vid; |
typedef enum { V_IND, V_UC, V_PF, V_SR } vid; |
|
|
struct oVS { |
typedef struct oVS { |
unsigned int n; |
unsigned int n; |
unsigned int asize; |
unsigned int asize; |
unsigned int at; |
unsigned int at; |
unsigned int level; |
unsigned int level; |
struct oFUNC *usrf; |
struct oFUNC *usrf; |
struct oPV *va; |
struct oPV *va; |
NODE opt; |
NODE opt; |
}; |
} *VS; |
|
|
typedef struct oVS *VS; |
typedef struct oMODULE { |
|
char *name; |
|
VS pvs; |
|
NODE usrf_list; |
|
} *MODULE; |
|
|
struct oPV { |
typedef struct oPV { |
char *name; |
char *name; |
short attr,type; |
short attr,type; |
pointer priv; |
pointer priv; |
}; |
} *PV; |
|
|
typedef struct oPV *PV; |
typedef struct oINFILE { |
|
char *name; |
|
FILE *fp; |
|
JMP_BUF jmpbuf; |
|
int ready_for_longjmp; |
|
int ln; |
|
struct oINFILE *next; |
|
char *tname; |
|
int encoded; |
|
short vol; |
|
} *INFILE; |
|
|
struct oINFILE { |
|
char *name; |
|
FILE *fp; |
|
int ln; |
|
struct oINFILE *next; |
|
char *tname; |
|
int encoded; |
|
short vol; |
|
}; |
|
|
|
typedef struct oINFILE *INFILE; |
|
|
|
struct oTKWD { |
struct oTKWD { |
char *name; |
char *name; |
int token; |
int token; |
}; |
}; |
|
|
struct oARF { |
typedef struct fid_spec { |
char *name; |
fid id; |
void (*fp)(); |
farg_type type[10]; |
}; |
} *fid_spec_p; |
|
|
typedef struct oARF *ARF; |
typedef struct oARF { |
|
char *name; |
|
void (*fp)(); |
|
} *ARF; |
|
|
struct oFUNC { |
typedef struct oFUNC { |
char *name; |
char *name,*fullname; |
int argc; |
int argc; |
int type; |
int type; |
aid id; |
int secure; |
union { |
aid id; |
void (*binf)(); |
unsigned int quote; |
struct oUSRF *usrf; |
union { |
struct oPF *puref; |
void (*binf)(); |
} f; |
struct oUSRF *usrf; |
}; |
struct oPF *puref; |
|
} f; |
|
} *FUNC; |
|
|
typedef struct oFUNC *FUNC; |
typedef struct oUSRF { |
|
char *fname; |
|
MODULE module; |
|
int startl,endl; |
|
NODE args; |
|
VS pvs; |
|
char *desc; |
|
struct oSNODE *body; |
|
} *USRF; |
|
|
struct oUSRF { |
typedef struct oPF { |
char *fname; |
char *name; |
short vol; |
int argc; |
int startl,endl; |
Obj body; |
NODE args; |
V *args; |
VS pvs; |
Obj *deriv; |
char *desc; |
NODE ins; |
struct oSNODE *body; |
int (*pari)(); |
}; |
double (*libm)(); |
|
int (*simplify)(); |
|
#if defined(INTERVAL) |
|
void (**intervalfunc)(); |
|
#endif |
|
} *PF; |
|
|
typedef struct oUSRF *USRF; |
typedef struct oPFAD { |
|
Obj arg; |
|
int d; |
|
} *PFAD; |
|
|
struct oPF { |
typedef struct oPFINS { |
char *name; |
struct oPF *pf; |
int argc; |
struct oPFAD ad[1]; |
Obj body; |
} *PFINS; |
V *args; |
|
Obj *deriv; |
|
NODE ins; |
|
int (*pari)(); |
|
double (*libm)(); |
|
int (*simplify)(); |
|
}; |
|
|
|
typedef struct oPF *PF; |
|
|
|
struct oPFAD { |
|
Obj arg; |
|
int d; |
|
}; |
|
|
|
typedef struct oPFAD *PFAD; |
|
|
|
struct oPFINS { |
|
struct oPF *pf; |
|
struct oPFAD ad[1]; |
|
}; |
|
|
|
typedef struct oPFINS *PFINS; |
|
|
|
#define NEWPF(p) ((p)=(PF)MALLOC(sizeof(struct oPF))) |
#define NEWPF(p) ((p)=(PF)MALLOC(sizeof(struct oPF))) |
|
|
struct oFNODE { |
typedef struct oFNODE { |
fid id; |
short id; |
pointer arg[1]; |
unsigned normalized:1; |
}; |
unsigned expanded:2; |
|
unsigned coef:1; |
|
pointer arg[1]; |
|
} *FNODE; |
|
|
typedef struct oFNODE *FNODE; |
|
|
|
#define NEWFNODE(a,b) \ |
#define NEWFNODE(a,b) \ |
((a)=(FNODE)MALLOC(sizeof(struct oFNODE)+sizeof(pointer)*(b-1))) |
((a)=(FNODE)MALLOC(sizeof(struct oFNODE)+sizeof(pointer)*(b-1))) |
|
|
struct oSNODE { |
typedef struct oSNODE { |
sid id; |
sid id; |
int ln; |
int ln; |
pointer arg[1]; |
pointer arg[1]; |
}; |
} *SNODE; |
|
|
typedef struct oSNODE *SNODE; |
|
|
|
#define NEWSNODE(a,b) \ |
#define NEWSNODE(a,b) \ |
((a)=(SNODE)MALLOC(sizeof(struct oSNODE)+sizeof(pointer)*(b-1)),(a)->ln=asir_infile->ln) |
((a)=(SNODE)MALLOC(sizeof(struct oSNODE)+sizeof(pointer)*(b-1)),(a)->ln=asir_infile->ln) |
|
|
struct oPVI { |
typedef struct oPVI { |
int pv; |
int pv; |
NODE index; |
NODE index; |
}; |
} *PVI; |
|
|
typedef struct oPVI *PVI; |
typedef struct oNODE2 { |
|
pointer body1,body2; |
|
struct oNODE2 *next; |
|
} *NODE2; |
|
|
struct oNODE2 { |
|
pointer body1,body2; |
|
struct oNODE2 *next; |
|
}; |
|
|
|
typedef struct oNODE2 *NODE2; |
|
|
|
struct ftab { |
struct ftab { |
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)\ |
|
|
|
|
#define asir_assert(ptr,id,message)\ |
#define asir_assert(ptr,id,message)\ |
switch ( id ) {\ |
switch ( id ) {\ |
case O_N: case O_P: case O_R:\ |
case O_N: case O_P: case O_R:\ |
if( (ptr) && (OID(ptr) > (id)) ) {\ |
if( (ptr) && (OID(ptr) > (id)) ) {\ |
fprintf(stderr,message);\ |
fprintf(stderr,message);\ |
error(" : invalid argument");\ |
error(" : invalid argument");\ |
}\ |
}\ |
break;\ |
break;\ |
case O_DP:\ |
case O_DP:\ |
if( (ptr) && (OID(ptr) != (id)) ) {\ |
if( (ptr) && (OID(ptr) != (id)) ) {\ |
fprintf(stderr,message);\ |
fprintf(stderr,message);\ |
error(" : invalid argument");\ |
error(" : invalid argument");\ |
}\ |
}\ |
break;\ |
break;\ |
default:\ |
default:\ |
if( !(ptr) || (OID(ptr) != (id)) ) {\ |
if( !(ptr) || (OID(ptr) != (id)) ) {\ |
fprintf(stderr,message);\ |
fprintf(stderr,message);\ |
error(" : invalid argument");\ |
error(" : invalid argument");\ |
}\ |
}\ |
break;\ |
break;\ |
} |
} |
|
|
#define DEFSIZE 32 |
#define DEFSIZE 32 |
#define MSB (1<<31) |
#define PVGLOBAL(i) (((unsigned int)(i))|(1<<30)) |
|
#define PVMGLOBAL(i) (((unsigned int)(i))|(2<<30)) |
|
#define PVPATTERN(i) (((unsigned int)(i))|(3<<30)) |
|
#define PVATTR(i) (((unsigned int)(i))>>30) |
|
#define PVIND(i) (((unsigned int)(i))&0x3fffffff) |
#define GETPV(i,p) \ |
#define GETPV(i,p) \ |
((int)(i)>=0 ? (int)((p)=CPVS->va[(unsigned int)(i)].priv)\ |
(PVATTR(i)==0?(int)((p)=CPVS->va[(unsigned int)(i)].priv)\ |
: (int)((p)=GPVS->va[(unsigned int)(i)&(~MSB)].priv)) |
:PVATTR(i)==1?(int)((p)=GPVS->va[PVIND(i)].priv)\ |
|
:PVATTR(i)==2?(int)((p)=MPVS->va[PVIND(i)].priv)\ |
|
:(int)((p)=PPVS->va[PVIND(i)].priv)) |
|
|
|
#define GETPVREF(i,p) \ |
|
(PVATTR(i)==0?(int)((p)=&(CPVS->va[(unsigned int)(i)].priv))\ |
|
:PVATTR(i)==1?(int)((p)=&(GPVS->va[PVIND(i)].priv))\ |
|
:PVATTR(i)==2?(int)((p)=&(MPVS->va[PVIND(i)].priv))\ |
|
:(int)((p)=&(PPVS->va[PVIND(i)].priv))) |
|
|
#define GETPVNAME(i,p) \ |
#define GETPVNAME(i,p) \ |
((int)(i)>=0 ? (int)((p)=CPVS->va[(unsigned int)(i)].name)\ |
(PVATTR(i)==0?(int)((p)=CPVS->va[(unsigned int)(i)].name)\ |
: (int)((p)=GPVS->va[(unsigned int)(i)&(~MSB)].name)) |
:PVATTR(i)==1?(int)((p)=GPVS->va[PVIND(i)].name)\ |
|
:PVATTR(i)==2?(int)((p)=MPVS->va[PVIND(i)].name)\ |
|
:(int)((p)=PPVS->va[PVIND(i)].name)) |
|
|
#define ASSPV(i,p) \ |
#define ASSPV(i,p) \ |
((int)(i)>=0 ? (int)(CPVS->va[(unsigned int)(i)].priv=(pointer)(p))\ |
(PVATTR(i)==0?(int)(CPVS->va[(unsigned int)(i)].priv=(pointer)(p))\ |
: (int)(GPVS->va[(unsigned int)(i)&(~MSB)].priv=(pointer)(p))) |
:PVATTR(i)==1?(int)(GPVS->va[PVIND(i)].priv=(pointer)(p))\ |
|
:PVATTR(i)==2?(int)(MPVS->va[PVIND(i)].priv=(pointer)(p))\ |
|
:(int)(PPVS->va[PVIND(i)].priv=(pointer)(p))) |
|
|
#define NEWNODE2(a) ((a)=(NODE2)MALLOC(sizeof(struct oNODE2))) |
#define NEWNODE2(a) ((a)=(NODE2)MALLOC(sizeof(struct oNODE2))) |
#define MKNODE2(a,b,c,d) \ |
#define MKNODE2(a,b,c,d) \ |
Line 300 switch ( id ) {\ |
|
Line 319 switch ( id ) {\ |
|
#define BDY1(a) ((a)->body1) |
#define BDY1(a) ((a)->body1) |
#define BDY2(a) ((a)->body2) |
#define BDY2(a) ((a)->body2) |
|
|
extern VS GPVS,CPVS,EPVS,APVS; |
extern VS GPVS,CPVS,EPVS,APVS,MPVS,PPVS; |
|
extern MODULE CUR_MODULE; |
|
extern NODE MODULE_LIST; |
|
extern char *CUR_FUNC; |
extern ARF addfs, subfs, mulfs, divfs, remfs, pwrfs; |
extern ARF addfs, subfs, mulfs, divfs, remfs, pwrfs; |
extern INFILE asir_infile; |
extern INFILE asir_infile; |
extern NODE usrf,sysf,noargsysf,ubinf,parif,ONENODE; |
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 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 322 extern int Verbose; |
|
Line 347 extern int Verbose; |
|
#define fflush w_fflush |
#define fflush w_fflush |
#endif |
#endif |
|
|
#if defined(VISUAL) || (defined(__MACH__) && defined(__ppc__)) |
#if defined(__GNUC__) || defined(VISUAL) || defined(__MINGW32__) || (defined(__MACH__) && defined(__ppc__)) || defined(__FreeBSD__) |
NODE mknode(int,...); |
NODE mknode(int,...); |
FNODE mkfnode(int,fid,...); |
FNODE mkfnode(int,fid,...); |
SNODE mksnode(int,sid,...); |
SNODE mksnode(int,sid,...); |
Line 341 void dp_ptozp_d(DP,DP *); |
|
Line 366 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 351 void dp_mbase(NODE,NODE *); |
|
Line 377 void dp_mbase(NODE,NODE *); |
|
void dp_dtov(DP,VECT *); |
void dp_dtov(DP,VECT *); |
void dp_cont(DP,Q *); |
void dp_cont(DP,Q *); |
void dp_idiv(DP,Q,DP *); |
void dp_idiv(DP,Q,DP *); |
|
void dtodpm(DP d,int pos,DPM *dp); |
|
void dpm_nf_z(NODE b,DPM g,DPM *ps,int full,int multiple,DPM *rp); |
|
void dpm_nf_f(NODE b,DPM g,DPM *ps,int full,DPM *rp); |
|
void weyl_actd(VL vl,DP p1,DP p2,DP *pr); |
|
void dpm_sp(DPM p1,DPM p2,DPM *rp); |
|
void initdpm(struct order_spec *spec,int type); |
|
void dpm_ht(DPM p,DPM *rp); |
|
void dpm_hm(DPM p,DPM *rp); |
|
int dpm_redble(DPM p1,DPM p2); |
|
void lumtop_unsigned(V v,int mod,int bound,LUM f,P *g); |
int dp_nt(DP); |
int dp_nt(DP); |
void dp_dehomo(DP,DP *); |
void dp_dehomo(DP,DP *); |
void dp_homo(DP,DP *); |
void dp_homo(DP,DP *); |
Line 376 void dp_mod(DP,int,NODE,DP *); |
|
Line 411 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 *); |
int cmpdl_matrix(int,DL,DL); |
|
int cmpdl_order_pair(int,DL,DL); |
|
int cmpdl_elim(int,DL,DL); |
|
int cmpdl_blexrev(int,DL,DL); |
|
int cmpdl_bgradrev(int,DL,DL); |
|
int cmpdl_brevrev(int,DL,DL); |
|
int cmpdl_brevgradlex(int,DL,DL); |
|
int cmpdl_bgradlex(int,DL,DL); |
|
int cmpdl_blex(int,DL,DL); |
|
int cmpdl_revgradlex(int,DL,DL); |
|
int cmpdl_gradlex(int,DL,DL); |
|
int cmpdl_revlex(int,DL,DL); |
|
int cmpdl_lex(int,DL,DL); |
|
int compd(VL,DP,DP); |
|
void adddl(int,DL,DL,DL *); |
|
void divsdc(VL,DP,P,DP *); |
|
void muldc(VL,DP,P,DP *); |
|
void muldm(VL,DP,MP,DP *); |
|
void muld(VL,DP,DP,DP *); |
|
void chsgnd(DP,DP *); |
|
void subd(VL,DP,DP,DP *); |
|
void addd(VL,DP,DP,DP *); |
|
int sugard(MP); |
|
void nodetod(NODE,DP *); |
|
void dtop(VL,VL,DP,P *); |
|
void ptod(VL,VL,P,DP *); |
|
void initd(struct order_spec *); |
|
|
|
int mainparse(SNODE *); |
int mainparse(SNODE *); |
int exprparse(FUNC,char *,FNODE *); |
int exprparse(FUNC,char *,FNODE *); |
Line 432 void input_init(FILE *,char *); |
|
Line 440 void input_init(FILE *,char *); |
|
void asir_terminate(int); |
void asir_terminate(int); |
void param_init(void); |
void param_init(void); |
void sprompt(char *); |
void sprompt(char *); |
|
void cppname_init(); |
void process_args(int,char **); |
void process_args(int,char **); |
void sig_init(void); |
void sig_init(void); |
void asir_save_handler(void); |
void asir_save_handler(void); |
Line 446 void tty_reset(void); |
|
Line 455 void tty_reset(void); |
|
void set_timer(int); |
void set_timer(int); |
void reset_timer(void); |
void reset_timer(void); |
void int_handler(int); |
void int_handler(int); |
void int_handler(int); |
|
void segv_handler(int); |
void segv_handler(int); |
void bus_handler(int); |
void bus_handler(int); |
void fpe_handler(int); |
void fpe_handler(int); |
Line 465 int yyparse(void); |
|
Line 473 int yyparse(void); |
|
void nodetod(NODE,DP *); |
void nodetod(NODE,DP *); |
void poppvs(void); |
void poppvs(void); |
int length(NODE); |
int length(NODE); |
int get_heapsize(void); |
size_t get_heapsize(void); |
int searchpvar(char *); |
int searchpvar(char *); |
void mkparif(char *,FUNC *); |
void mkparif(char *,FUNC *); |
void makevar(char *,P *); |
void makevar(char *,P *); |
void mkpvs(void); |
void mkpvs(char *); |
|
MODULE mkmodule(char *); |
void stoarg(char *,int *,char **); |
void stoarg(char *,int *,char **); |
void yyerror(char *); |
void yyerror(char *); |
void closecurrentinput(void); |
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 493 void printv(VL,V); |
|
Line 502 void printv(VL,V); |
|
void sprintv(VL,V); |
void sprintv(VL,V); |
int arf_comp(VL, Obj, Obj); |
int arf_comp(VL, Obj, Obj); |
int complist(VL, LIST, LIST); |
int complist(VL, LIST, LIST); |
int complist(VL, LIST, LIST); |
|
int getcompsize(int); |
int getcompsize(int); |
int getpvar(VS,char *,int); |
int getpvar(VS,char *,int); |
int getpvar(VS,char *,int); |
|
int gettype(unsigned int); |
int gettype(unsigned int); |
int indextotype(int,int); |
int indextotype(int,int); |
int loadfile(char *); |
int loadfile(char *); |
int loadfiles(NODE); |
int loadfiles(NODE); |
int makepvar(char *); |
unsigned int makepvar(char *); |
int membertoindex(int,char *); |
int membertoindex(int,char *); |
int qcoefp(Obj); |
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 547 void getmemberp(FNODE,Obj **); |
|
Line 545 void getmemberp(FNODE,Obj **); |
|
void help(char *); |
void help(char *); |
void instov(PFINS ,V *); |
void instov(PFINS ,V *); |
Obj memberofstruct(COMP,char *); |
Obj memberofstruct(COMP,char *); |
void mkpf(char *,Obj ,int ,V *,int (*)(),double (*)(),int (*)(),PF *); |
#if defined(INTERVAL) |
|
void mkpf(char *,Obj ,int ,V *,int (*)(),double (*)(),int (*)(),void (*[])(), PF *); |
|
#else |
|
void mkpf(char *,Obj ,int ,V *,int (*)(),double (*)(),int (*)(), PF *); |
|
#endif |
void mkpfins(PF ,V *,V *); |
void mkpfins(PF ,V *,V *); |
void mkuf(char *,char *,NODE,SNODE,int,int,char *); |
void mkuf(char *,char *,NODE,SNODE,int,int,char *,MODULE); |
void newstruct(int,struct oCOMP **); |
void newstruct(int,struct oCOMP **); |
void optobj(Obj *); |
void optobj(Obj *); |
void println(int, char **, int); |
void println(int, char **, int); |
Line 605 int dp_redble(DP p1,DP p2); |
|
Line 607 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 643 void dp_mbase(NODE hlist,NODE *mbase); |
|
Line 643 void dp_mbase(NODE hlist,NODE *mbase); |
|
void dp_idiv(DP p,Q c,DP *rp); |
void dp_idiv(DP p,Q c,DP *rp); |
void dp_ptozp2(DP p0,DP p1,DP *hp,DP *rp); |
void dp_ptozp2(DP p0,DP p1,DP *hp,DP *rp); |
void dp_ptozp(DP p,DP *rp); |
void dp_ptozp(DP p,DP *rp); |
int eqdl(int nv,DL dl1,DL dl2); |
|
void _dpmod_to_vect(DP f,DL *at,int *b); |
void _dpmod_to_vect(DP f,DL *at,int *b); |
void _tf_to_vect_compress(NODE tf,DL *at,CDP *b); |
void _tf_to_vect_compress(NODE tf,DL *at,CDP *b); |
void dp_to_vect(DP f,DL *at,Q *b); |
void dp_to_vect(DP f,DL *at,Q *b); |
Line 690 DP_pairs criterion_F( DP_pairs d1 ); |
|
Line 689 DP_pairs criterion_F( DP_pairs d1 ); |
|
NODE updbase(NODE g,int t); |
NODE updbase(NODE g,int t); |
NODE /* of index */ remove_reducibles(NODE /* of index */ nd, int newdp ); |
NODE /* of index */ remove_reducibles(NODE /* of index */ nd, int newdp ); |
int dl_redble(DL dl1,DL dl2); |
int dl_redble(DL dl1,DL dl2); |
int dl_weight(DL dl); |
int dl_weyl_weight(DL dl); |
int gbcheck(NODE f); |
int gbcheck(NODE f); |
int membercheck(NODE f,NODE x); |
int membercheck(NODE f,NODE x); |
void dp_set_flag(Obj name,Obj value); |
void dp_set_flag(Obj name,Obj value); |
Line 744 void reduce_reducers_mod(int **mat,int row,int col,int |
|
Line 743 void reduce_reducers_mod(int **mat,int row,int col,int |
|
void pre_reduce_mod(int **mat,int row,int col,int nred,int md); |
void pre_reduce_mod(int **mat,int row,int col,int nred,int md); |
void reduce_sp_by_red_mod(int *sp,int **redmat,int *ind,int nred,int col,int md); |
void reduce_sp_by_red_mod(int *sp,int **redmat,int *ind,int nred,int col,int md); |
void red_by_compress(int m,unsigned int *p,unsigned int *r, |
void red_by_compress(int m,unsigned int *p,unsigned int *r, |
unsigned int *ri,unsigned int hc,int len); |
unsigned int *ri,unsigned int hc,int len); |
void red_by_vect(int m,unsigned int *p,unsigned int *r,unsigned int hc,int len); |
void red_by_vect(int m,unsigned int *p,unsigned int *r,unsigned int hc,int len); |
void reduce_sp_by_red_mod_compress (int *sp,CDP *redmat,int *ind, |
void reduce_sp_by_red_mod_compress (int *sp,CDP *redmat,int *ind, |
int nred,int col,int md); |
int nred,int col,int md); |
int generic_gauss_elim_mod(int **mat0,int row,int col,int md,int *colstat); |
int generic_gauss_elim_mod(int **mat0,int row,int col,int md,int *colstat); |
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); |
void mat_to_gfmmat(MAT m,unsigned int md,GFMMAT *rp); |
void mat_to_gfmmat(MAT m,unsigned int md,GFMMAT *rp); |
int gauss_elim_geninv_mod_swap(unsigned int **mat,int row,int col, |
int gauss_elim_geninv_mod_swap(unsigned int **mat,int row,int col, |
unsigned int md,unsigned int ***invmatp,int **indexp); |
unsigned int md,unsigned int ***invmatp,int **indexp); |
void inner_product_int(Q *a,Q *b,int n,Q *r); |
void inner_product_int(Q *a,Q *b,int n,Q *r); |
void inner_product_mat_int_mod(Q **a,int **b,int n,int k,int l,Q *r); |
void inner_product_mat_int_mod(Q **a,int **b,int n,int k,int l,Q *r); |
int generate_ONB_polynomial(UP2 *rp,int m,int type); |
int generate_ONB_polynomial(UP2 *rp,int m,int type); |
Line 774 void igcd_cofactor(Q a,Q b,Q *gcd,Q *ca,Q *cb); |
|
Line 773 void igcd_cofactor(Q a,Q b,Q *gcd,Q *ca,Q *cb); |
|
int comp_n(N *a,N *b); |
int comp_n(N *a,N *b); |
int TypeT_NB_check(unsigned int m, unsigned int t); |
int TypeT_NB_check(unsigned int m, unsigned int t); |
int small_jacobi(int a,int m); |
int small_jacobi(int a,int m); |
void mkpvs(); |
|
void pushpvs(FUNC f); |
void pushpvs(FUNC f); |
void poppvs(); |
void poppvs(); |
int makepvar(char *str); |
unsigned int makepvar(char *str); |
int searchpvar(char *str); |
int searchpvar(char *str); |
int getpvar(VS pvs,char *str,int searchonly); |
int getpvar(VS pvs,char *str,int searchonly); |
void closecurrentinput(); |
void closecurrentinput(); |
Line 798 void chsgnquote(QUOTE a,QUOTE *c); |
|
Line 796 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); |
|
|
void sprompt(char *ptr); |
void sprompt(char *ptr); |
void process_args(int ac,char **av); |
void process_args(int ac,char **av); |
void sig_init() ; |
void sig_init() ; |
static void (*old_int)(int);; |
|
void asir_save_handler() ; |
void asir_save_handler() ; |
void asir_set_handler() ; |
void asir_set_handler() ; |
void asir_reset_handler() ; |
void asir_reset_handler() ; |
Line 842 void show_debug_window(int on); |
|
Line 839 void show_debug_window(int on); |
|
void init_cmdwin(); |
void init_cmdwin(); |
void searchpf(char *name,FUNC *fp); |
void searchpf(char *name,FUNC *fp); |
void searchc(char *name,FUNC *fp); |
void searchc(char *name,FUNC *fp); |
|
#if defined(INTERVAL) |
void mkpf(char *name,Obj body,int argc,V *args, |
void mkpf(char *name,Obj body,int argc,V *args, |
int (*parif)(),double (*libmf)(), int (*simp)(),PF *pfp); |
int (*parif)(),double (*libmf)(), int (*simp)(), void (*intervalfunc[])(), PF *pfp); |
|
#else |
|
void mkpf(char *name,Obj body,int argc,V *args, |
|
int (*parif)(),double (*libmf)(), int (*simp)(), PF *pfp); |
|
#endif |
void mkpfins(PF pf,V *args,V *vp); |
void mkpfins(PF pf,V *args,V *vp); |
void _mkpfins(PF pf,Obj *args,V *vp); |
void _mkpfins(PF pf,Obj *args,V *vp); |
void _mkpfins_with_darray(PF pf,Obj *args,int *darray,V *vp); |
void _mkpfins_with_darray(PF pf,Obj *args,int *darray,V *vp); |
Line 879 pointer eval(FNODE f); |
|
Line 881 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 bevalf_with_opts(FUNC f,NODE a,NODE opts); |
pointer evalpf(PF pf,NODE args); |
pointer evalif(FNODE f,FNODE a,FNODE opt); |
|
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); |
void appenduf(char *name,FUNC *r); |
void appenduf(char *name,FUNC *r); |
void mkparif(char *name,FUNC *r); |
void mkparif(char *name,FUNC *r); |
void mkuf(char *name,char *fname,NODE args,SNODE body,int startl,int endl,char *desc); |
void mkuf(char *name,char *fname,NODE args,SNODE body,int startl,int endl,char *desc,MODULE module); |
Obj getopt_from_cpvs(char *key); |
Obj getopt_from_cpvs(char *key); |
void des_enc(unsigned long *, unsigned char *, unsigned long *); |
void des_enc(unsigned long *, unsigned char *, unsigned long *); |
unsigned long round_func(unsigned long , unsigned char *); |
unsigned long round_func(unsigned long , unsigned char *); |
unsigned long s_box_func(unsigned char *); |
unsigned long s_box_func(unsigned char *); |
void des_dec(unsigned long *, unsigned char *, unsigned long *); |
void des_dec(unsigned long *, unsigned char *, unsigned long *); |
void key_schedule(unsigned char *,unsigned char *); |
void key_schedule(unsigned char *,unsigned char *); |
void debug_init(); |
void debug_init(); |
void add_alias(char *com,char *alias); |
void add_alias(char *com,char *alias); |
void show_alias(char *alias); |
void show_alias(char *alias); |
Line 921 int estimate_length(VL vl,pointer p); |
|
Line 926 int estimate_length(VL vl,pointer p); |
|
void send_progress(short per,char *msg); |
void send_progress(short per,char *msg); |
void set_error(int code,char *reason,char *action); |
void set_error(int code,char *reason,char *action); |
double get_current_time(); |
double get_current_time(); |
|
int get_opt(char *key0,Obj *r); |
|
|
|
#if defined(VISUAL) || defined(__MINGW32__) |
|
void ox_plot_main(); |
|
#else |
|
void ox_plot_main(int argc,char **argv); |
|
#endif |
|
void launch_main(int argc,char **argv); |
|
void ox_main(int argc,char **argv); |
|
|
|
void get_fid_spec(fid id,fid_spec_p *spec); |
|
FNODE strip_paren(FNODE f); |
|
NODE flatten_fnodenode(NODE n,char *opname); |
|
FNODE flatten_fnode(FNODE f,char *opname); |
|
int compquote(VL vl,QUOTE q1,QUOTE q2); |
|
int compqa(VL vl,QUOTEARG q1,QUOTEARG q2); |
|
int compfnode(FNODE f1,FNODE f2); |
|
void shuffle_mulnbp(VL vl,NBP p1,NBP p2, NBP *rp); |
|
void harmonic_mulnbp(VL vl,NBP p1,NBP p2, NBP *rp); |
|
void mulnbmnbp(VL vl,NBM m,NBP p, NBP *rp); |
|
void mulnbpnbm(VL vl,NBP p,NBM m, NBP *rp); |
|
P separate_nbm(NBM a,NBP *a0,NBP *ah,NBP *ar); |
|
P separate_tail_nbm(NBM a,NBP *a0,NBP *ar,NBP *at); |
|
P separate_xky_nbm(NBM a,NBP *a0,NBP *ah,NBP *ar); |
|
|
|
int fnode_is_var(FNODE f); |
|
int fnode_is_coef(FNODE f); |
|
int fnode_is_number(FNODE f); |
|
int fnode_is_rational(FNODE f); |
|
int fnode_is_integer(FNODE f); |
|
int fnode_is_nonnegative_integer(FNODE f); |
|
int fnode_is_one(FNODE f); |
|
int fnode_is_minusone(FNODE f); |
|
int fnode_is_dependent(FNODE f,V v); |
|
|
|
int nfnode_comp(FNODE f1,FNODE f2); |
|
int nfnode_comp_lex(FNODE f1,FNODE f2); |
|
int nfnode_match(FNODE f,FNODE pat,NODE *rp); |
|
int nfnode_match_naryadd(FNODE f,FNODE p,NODE *rp); |
|
int nfnode_match_narymul(FNODE f,FNODE p,NODE *rp); |
|
|
|
int exprparse_create_var(FUNC f,char *str,SNODE *statp); |
|
int obj_is_dependent(Obj a,V v); |
|
void instoobj(PFINS ins,Obj *rp); |
|
void goto_toplevel(char *s); |
|
void add_bucket(GeoBucket g,NODE d,int nv); |
|
void gen_searchf_searchonly(char *name,FUNC *r,int global); |
|
void update_LASTCO(); |
|
void order_init(); |
|
void GC_init(void); |
|
void showpos_to_list(LIST *r); |
|
void mp_abs(NODE arg,Num *rp); |
|
void print_crossref(FUNC f); |
|
void ox_usr1_handler(int sig); |