=================================================================== RCS file: /home/cvs/OpenXM/src/hgm/mh/src/jack-n.c,v retrieving revision 1.19 retrieving revision 1.24 diff -u -p -r1.19 -r1.24 --- OpenXM/src/hgm/mh/src/jack-n.c 2014/03/14 05:58:16 1.19 +++ OpenXM/src/hgm/mh/src/jack-n.c 2014/03/16 00:00:46 1.24 @@ -5,7 +5,7 @@ #include #include "sfile.h" /* - $OpenXM: OpenXM/src/hgm/mh/src/jack-n.c,v 1.18 2014/03/14 02:21:40 takayama Exp $ + $OpenXM: OpenXM/src/hgm/mh/src/jack-n.c,v 1.23 2014/03/15 11:23:58 takayama Exp $ Ref: copied from this11/misc-2011/A1/wishart/Prog jack-n.c, translated from mh.rr or tk_jack.rr in the asir-contrib. License: LGPL Koev-Edelman for higher order derivatives. @@ -15,6 +15,7 @@ 2. Use the recurrence to obtain beta(). 3. Easier input data file format for mh-n.c Changelog: + 2014.03.15 http://fe.math.kobe-u.ac.jp/Movies/oxvh/2014-03-11-jack-n-c-automatic see also hgm/doc/ref.html, @s/2014/03/15-my-note-jack-automatic-order-F_A-casta.pdf. 2014.03.14, --automatic option. Output estimation data. 2012.02.21, porting to OpenXM/src/hgm 2011.12.22, --table option, which is experimental. @@ -117,7 +118,7 @@ static double M_assigned_series_error=0.00001; If F(M_m)*Ef < x0value_min (B), the success=0 and X0g is increased. Note that minimal double is about 2e-308 */ -static double M_x0value_min=1e-10; +static double M_x0value_min=1e-30; /* estimated_X0g is the suggested value of X0g. */ @@ -149,9 +150,6 @@ static double M_beta_i_beta_j_min; */ static double M_mh_t_value; -#define myabs(x) ((x)<0?(-(x)):(x)) -#define mymax(x,y) ((x)>(y)?(x):(y)) -#define mymin(x,y) ((x)<(y)?(x):(y)) /* prototypes */ static void *mymalloc(int size); @@ -1381,8 +1379,10 @@ double mh_t(double A[A_LEN],double B[B_LEN],int N,int M_recommended_abserr = iv*M_assigned_series_error; printf("%%%%serror=%lg, M_assigned_series_error=%lg, M_m_estimated_approx_deg=%d,M_m=%d\n",serror,M_assigned_series_error,M_m_estimated_approx_deg,M_m); + printf("%%%%x0value_min=%lg, x0g_bound=%lg\n",M_x0value_min, M_X0g_bound); printf("%%%%F=%lg,Ef=%lg,M_estimated_X0g=%lg, X0g=%lg\n",F,iv_factor(),M_estimated_X0g,X0g); fprintf(stderr,"%%%%(stderr) serror=%lg, M_assigned_series_error=%lg, M_m_estimated_approx_deg=%d,M_m=%d\n",serror,M_assigned_series_error,M_m_estimated_approx_deg,M_m); + fprintf(stderr,"%%%%(stderr) x0value_min=%lg, x0g_bound=%lg\n",M_x0value_min, M_X0g_bound); fprintf(stderr,"%%%%(stderr) F=%lg,Ef=%lg,M_estimated_X0g=%lg, X0g=%lg\n",F,iv_factor(),M_estimated_X0g,X0g); M_mh_t_value=F; @@ -1515,7 +1515,7 @@ struct MH_RESULT *jk_main2(int argc,char *argv[],int a JK_byFile = 0; }else if (strcmp(argv[i],"--automatic")==0) { inci(i); /* ignore, in this function */ - }else if (strcmp(argv[i],"--assigend_series_error")==0) { + }else if (strcmp(argv[i],"--assigned_series_error")==0) { inci(i); sscanf(argv[i],"%lg",&M_assigned_series_error); }else if (strcmp(argv[i],"--x0value_min")==0) { @@ -1610,14 +1610,14 @@ struct MH_RESULT *jk_main2(int argc,char *argv[],int a static int usage() { fprintf(stderr,"Usages:\n"); fprintf(stderr,"hgm_jack-n [--idata input_data_file --x0 x0 --degree approxm]\n"); - fprintf(stderr," [--automatic n --assigend_series_error e --x0value_min e2]\n"); + fprintf(stderr," [--automatic n --assigned_series_error e --x0value_min e2]\n"); fprintf(stderr,"\nThe command hgm_jack-n [options] generates an input for hgm_w-n, Pr({y | y