--- imach/src/imach.c 2006/03/15 17:42:26 1.119 +++ imach/src/imach.c 2006/03/16 15:10:38 1.120 @@ -1,6 +1,11 @@ -/* $Id: imach.c,v 1.119 2006/03/15 17:42:26 brouard Exp $ +/* $Id: imach.c,v 1.120 2006/03/16 15:10:38 lievre Exp $ $State: Exp $ $Log: imach.c,v $ + Revision 1.120 2006/03/16 15:10:38 lievre + (Module): refinements in the computation of lli if + status=-2 in order to have more reliable computation if stepm is + not 1 month. Version 0.98f + Revision 1.119 2006/03/15 17:42:26 brouard (Module): Bug if status = -2, the loglikelihood was computed as likelihood omitting the logarithm. Version O.98e @@ -326,11 +331,11 @@ extern int errno; #define ODIRSEPARATOR '/' #endif -/* $Id: imach.c,v 1.119 2006/03/15 17:42:26 brouard Exp $ */ +/* $Id: imach.c,v 1.120 2006/03/16 15:10:38 lievre Exp $ */ /* $State: Exp $ */ -char version[]="Imach version 0.98e, March 2006, INED-EUROREVES-Institut de longevite "; -char fullversion[]="$Revision: 1.119 $ $Date: 2006/03/15 17:42:26 $"; +char version[]="Imach version 0.98f, March 2006, INED-EUROREVES-Institut de longevite "; +char fullversion[]="$Revision: 1.120 $ $Date: 2006/03/16 15:10:38 $"; char strstart[80]; char optionfilext[10], optionfilefiname[FILENAMELENGTH]; int erreur, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */ @@ -1386,23 +1391,23 @@ double func( double *x) } else if (s2==-2) { for (j=1,survp=0. ; j<=nlstate; j++) - survp += out[s1][j]; + survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; + /*survp += out[s1][j]; */ lli= log(survp); } -/* else if (s2==-4) { */ -/* for (j=3,survp=0. ; j<=nlstate; j++) */ -/* survp += out[s1][j]; */ -/* lli= survp; */ -/* } */ + else if (s2==-4) { + for (j=3,survp=0. ; j<=nlstate; j++) + survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; + lli= log(survp); + } + + else if (s2==-5) { + for (j=1,survp=0. ; j<=2; j++) + survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; + lli= log(survp); + } -/* else if (s2==-5) { */ -/* for (j=1,survp=0. ; j<=2; j++) */ -/* survp += out[s1][j]; */ -/* lli= survp; */ -/* } */ - - else{ lli= log((1.+bbh)*out[s1][s2]- bbh*savm[s1][s2]); /* linear interpolation */ /* lli= (savm[s1][s2]>(double)1.e-8 ?log((1.+bbh)*out[s1][s2]- bbh*(savm[s1][s2])):log((1.+bbh)*out[s1][s2]));*/ /* linear interpolation */ @@ -1599,7 +1604,7 @@ double funcone( double *x) lli=log(out[s1][s2] - savm[s1][s2]); } else if (s2==-2) { for (j=1,survp=0. ; j<=nlstate; j++) - survp += out[s1][j]; + survp += (1.+bbh)*out[s1][j]- bbh*savm[s1][j]; lli= log(survp); }else if (mle==1){ lli= log((1.+bbh)*out[s1][s2]- bbh*savm[s1][s2]); /* linear interpolation */