=================================================================== RCS file: /home/cvs/OpenXM/src/hgm/mh/src/sfile.h,v retrieving revision 1.9 retrieving revision 1.13 diff -u -p -r1.9 -r1.13 --- OpenXM/src/hgm/mh/src/sfile.h 2014/03/11 05:20:45 1.9 +++ OpenXM/src/hgm/mh/src/sfile.h 2014/03/17 02:49:39 1.13 @@ -1,5 +1,5 @@ /* - $OpenXM: OpenXM/src/hgm/mh/src/sfile.h,v 1.8 2013/03/08 04:54:01 takayama Exp $ + $OpenXM: OpenXM/src/hgm/mh/src/sfile.h,v 1.12 2014/03/15 00:43:47 takayama Exp $ */ struct SFILE { int byFile; @@ -19,7 +19,16 @@ struct MH_RESULT { struct SFILE **sfpp; /* sfpp[0], ..., spff[size-1] */ int size; char *message; + int t_success; + double series_error; + double recommended_abserr; }; + +struct mh_token { + int type; + double dval; + int ival; +}; struct SFILE *mh_fopen(char *name, char *mode, int byFile); char *mh_fgets(char *str,int size,struct SFILE *sfp); @@ -31,10 +40,22 @@ int mh_free(void *p); int mh_exit(int n); void mh_check_intr(int interval); void mh_error(char *s,int code); +struct mh_token mh_getoken(char s[],int smax,struct SFILE *sfp); +void mh_print_token(struct mh_token tk,char *s); +#define MH_TOKEN_EOF -1 +#define MH_TOKEN_ID 1 +#define MH_TOKEN_EQ 2 +#define MH_TOKEN_DOUBLE 3 +#define MH_TOKEN_INT 4 + #define MH_SSIZE 1024 #define MH_RESET_EXIT 0x7fffffff +#define myabs(x) ((x)<0?(-(x)):(x)) +#define mymax(x,y) ((x)>(y)?(x):(y)) +#define mymin(x,y) ((x)<(y)?(x):(y)) + /* prototypes in wmain.c */ struct MH_RESULT *mh_main(int argc,char *argv[]); /* prototypes in rk.c*/ @@ -42,3 +63,5 @@ struct MH_RESULT mh_rkmain(double x0,double y0[],doubl /* prototype in jack-n.c */ struct MH_RESULT *jk_main(int argc,char *argv[]); +/* Significant digit control used both in wmain.c and jack-n.c */ +#define M_ASSIGNED_SERIES_ERROR_DEFAULT 1e-5