File: [local] / OpenXM / src / hgm / mh / src / sfile.h (download)
Revision 1.17, Wed Jun 1 00:50:19 2016 UTC (8 years ago) by takayama
Branch: MAIN
CVS Tags: HEAD Changes since 1.16: +4 -3
lines
A bug fix of the radius.
|
/*
$OpenXM: OpenXM/src/hgm/mh/src/sfile.h,v 1.17 2016/06/01 00:50:19 takayama Exp $
*/
#include "oxprint.h"
struct SFILE {
int byFile;
char *s;
int pt;
int len;
int limit;
FILE *fp;
int forRead;
int copied;
};
struct MH_RESULT {
double x;
double *y;
int rank;
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);
int mh_fputs(char *s,struct SFILE *sfp);
int mh_fclose(struct SFILE *sfp);
int mh_outstr(char *str,int size,struct SFILE *sfp);
void *mh_malloc(int s);
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*/
struct MH_RESULT mh_rkmain(double x0,double y0[],double xn);
/* 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
#define MH_RELERR_DEFAULT (1e-10)
/* The next value is heuristic */
#define SERIES_ADMISSIBLE_RADIUS_TYPE1 50.0
/* SERIES RADIUS close to 1 is not good. */
#define SERIES_ADMISSIBLE_RADIUS_TYPE2 0.77
int reset_SAR_warning(int n);