--- imach/src/imach.c 2004/09/15 17:31:30 1.102 +++ imach/src/imach.c 2005/09/30 15:54:49 1.103 @@ -1,6 +1,9 @@ -/* $Id: imach.c,v 1.102 2004/09/15 17:31:30 brouard Exp $ +/* $Id: imach.c,v 1.103 2005/09/30 15:54:49 lievre Exp $ $State: Exp $ $Log: imach.c,v $ + Revision 1.103 2005/09/30 15:54:49 lievre + (Module): sump fixed, loop imx fixed, and simplifications. + Revision 1.102 2004/09/15 17:31:30 brouard Add the possibility to read data file including tab characters. @@ -244,11 +247,11 @@ #define ODIRSEPARATOR '/' #endif -/* $Id: imach.c,v 1.102 2004/09/15 17:31:30 brouard Exp $ */ +/* $Id: imach.c,v 1.103 2005/09/30 15:54:49 lievre Exp $ */ /* $State: Exp $ */ char version[]="Imach version 0.97c, September 2004, INED-EUROREVES "; -char fullversion[]="$Revision: 1.102 $ $Date: 2004/09/15 17:31:30 $"; +char fullversion[]="$Revision: 1.103 $ $Date: 2005/09/30 15:54:49 $"; int erreur, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */ int nvar; int cptcovn=0, cptcovage=0, cptcoveff=0,cptcov; @@ -3921,24 +3924,22 @@ double gompertz(double x[]) int i,n=0; /* n is the size of the sample */ for (i=0;i<=imx-1 ; i++) { sump=sump+weight[i]; - sump=sump+1; + /* sump=sump+1;*/ num=num+1; } - /* for (i=1; i<=imx; i++) + /* for (i=0; i<=imx; i++) if (wav[i]>0) printf("i=%d ageex=%lf agecens=%lf agedc=%lf cens=%d %d\n" ,i,ageexmed[i],agecens[i],agedc[i],cens[i],wav[i]);*/ - for (i=0;i<=imx-1 ; i++) + for (i=1;i<=imx ; i++) { if (cens[i]==1 & wav[i]>1) - A=-x[1]/(x[2])* - (exp(x[2]/YEARM*(agecens[i]*12-agegomp*12))-exp(x[2]/YEARM*(ageexmed[i]*12-agegomp*12))); + A=-x[1]/(x[2])*(exp(x[2]*(agecens[i]-agegomp))-exp(x[2]*(ageexmed[i]-agegomp))); if (cens[i]==0 & wav[i]>1) - A=-x[1]/(x[2])* - (exp(x[2]/YEARM*(agedc[i]*12-agegomp*12))-exp(x[2]/YEARM*(ageexmed[i]*12-agegomp*12))) - +log(x[1]/YEARM)+x[2]/YEARM*(agedc[i]*12-agegomp*12)+log(YEARM); + A=-x[1]/(x[2])*(exp(x[2]*(agedc[i]-agegomp))-exp(x[2]*(ageexmed[i]-agegomp))) + +log(x[1]/YEARM)+x[2]*(agedc[i]-agegomp)+log(YEARM); if (wav[i]>1 & agecens[i]>15) { L=L+A*weight[i];