--- imach/src/imach.c 2014/09/25 11:43:39 1.162 +++ imach/src/imach.c 2014/12/16 10:30:11 1.163 @@ -1,6 +1,9 @@ -/* $Id: imach.c,v 1.162 2014/09/25 11:43:39 brouard Exp $ +/* $Id: imach.c,v 1.163 2014/12/16 10:30:11 brouard Exp $ $State: Exp $ $Log: imach.c,v $ + Revision 1.163 2014/12/16 10:30:11 brouard + * imach.c (Module): Merging 1.61 to 1.162 + Revision 1.162 2014/09/25 11:43:39 brouard Summary: temporary backup 0.99! @@ -565,11 +568,11 @@ typedef struct { #define ODIRSEPARATOR '\\' #endif -/* $Id: imach.c,v 1.162 2014/09/25 11:43:39 brouard Exp $ */ +/* $Id: imach.c,v 1.163 2014/12/16 10:30:11 brouard Exp $ */ /* $State: Exp $ */ char version[]="Imach version 0.99, September 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121)"; -char fullversion[]="$Revision: 1.162 $ $Date: 2014/09/25 11:43:39 $"; +char fullversion[]="$Revision: 1.163 $ $Date: 2014/12/16 10:30:11 $"; char strstart[80]; char optionfilext[10], optionfilefiname[FILENAMELENGTH]; int erreur=0, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */ @@ -1238,6 +1241,14 @@ void mnbrak(double *ax, double *bx, doub ulim=(*bx)+GLIMIT*(*cx-*bx); /* Maximum abscisse where function can be evaluated */ if ((*bx-u)*(u-*cx) > 0.0) { /* if u between b and c */ fu=(*func)(u); +#ifdef DEBUG + /* f(x)=A(x-u)**2+f(u) */ + double A, fparabu; + A= (*fb - *fa)/(*bx-*ax)/(*bx+*ax-2*u); + fparabu= *fa - A*(*ax-u)*(*ax-u); + printf("mnbrak (*ax=%.12f, *fa=%.12lf), (*bx=%.12f, *fb=%.12lf), (*cx=%.12f, *fc=%.12lf), (*u=%.12f, fu=%.12lf, fparabu=%.12f)\n",*ax,*fa,*bx,*fb,*cx,*fc,u,fu, fparabu); + fprintf(ficlog, "mnbrak (*ax=%.12f, *fa=%.12lf), (*bx=%.12f, *fb=%.12lf), (*cx=%.12f, *fc=%.12lf), (*u=%.12f, fu=%.12lf, fparabu=%.12f)\n",*ax,*fa,*bx,*fb,*cx,*fc,u,fu, fparabu); +#endif } else if ((*cx-u)*(u-ulim) > 0.0) { /* u is after c but before ulim */ fu=(*func)(u); if (fu < *fc) {