/* $Id$
$State$
$Log$
+ Revision 1.94 2003/06/27 13:00:02 brouard
+ Just cleaning
+
Revision 1.93 2003/06/25 16:33:55 brouard
(Module): On windows (cygwin) function asctime_r doesn't
exist so I changed back to asctime which exists.
#include <time.h>
#include "timeval.h"
+/* #include <libintl.h> */
+/* #define _(String) gettext (String) */
+
#define MAXLINE 256
#define GNUPLOTPROGRAM "gnuplot"
/*#define GNUPLOTPROGRAM "..\\gp37mgw\\wgnuplot"*/
hf=hstepm*stepm/YEARM; /* Duration of hstepm expressed in year unit. */
- /* Computing Variances of health expectancies */
+ /* Computing Variances of health expectancies */
for(theta=1; theta <=npar; theta++){
for(i=1; i<=npar; i++){
fprintf(fichtm,"\n<li><h4> Computing and drawing one step probabilities with their confidence intervals</h4></li>\n");
fprintf(fichtm,"\n");
- fprintf(fichtm,"\n<li><h4> <a href=\"%s\">Computing matrix of variance-covariance of step probabilities</a></h4></li>\n",optionfilehtmcov);
- fprintf(fichtmcov,"\n<h4>Computing matrix of variance-covariance of step probabilities</h4>\n\
+ fprintf(fichtm,"\n<li><h4> <a href=\"%s\">Matrix of variance-covariance of pairs of step probabilities (drawings)</a></h4></li>\n",optionfilehtmcov);
+ fprintf(fichtmcov,"\n<h4>Matrix of variance-covariance of pairs of step probabilities</h4>\n\
file %s<br>\n",optionfilehtmcov);
fprintf(fichtmcov,"\nEllipsoids of confidence centered on point (p<inf>ij</inf>, p<inf>kl</inf>) are estimated\
and drawn. It helps understanding how is the covariance between two incidences.\
fprintf(fichtm," ************\n<hr size=\"2\" color=\"#EC5E5E\">");
}
for(cpt=1; cpt<=nlstate;cpt++) {
- fprintf(fichtm,"<br>- Observed and period prevalence (with confident\
-interval) in state (%d): %s%d%d.png <br>\
+ fprintf(fichtm,"<br>- Observed (cross-sectional) and period (incidence based) \
+prevalence (with 95%% confidence interval) in state (%d): %s%d%d.png <br>\
<img src=\"%s%d%d.png\">",cpt,subdirf2(optionfilefiname,"v"),cpt,jj1,subdirf2(optionfilefiname,"v"),cpt,jj1);
}
} /* end i1 */
} /* end k*/
} /*end j */
} /* end i */
- }
+ } /* end itimes */
} /* end of prwizard */
{
int movingaverage(double ***probs, double bage,double fage, double ***mobaverage, int mobilav);
int i,j, k, n=MAXN,iter,m,size=100,cptcode, cptcod;
- int jj, imk;
+ int jj, ll, li, lj, lk, imk;
int numlinepar=0; /* Current linenumber of parameter file */
+ int itimes;
+
+ char ca[32], cb[32], cc[32];
/* FILE *fichtm; *//* Html File */
/* FILE *ficgp;*/ /*Gnuplot File */
double agedeb, agefin,hf;
long total_usecs;
+/* setlocale (LC_ALL, ""); */
+/* bindtextdomain (PACKAGE, LOCALEDIR); */
+/* textdomain (PACKAGE); */
+/* setlocale (LC_CTYPE, ""); */
+/* setlocale (LC_MESSAGES, ""); */
+
/* gettimeofday(&start_time, (struct timezone*)0); */ /* at first time */
(void) gettimeofday(&start_time,&tzp);
curr_time=start_time;
fprintf(ficres,"title=%s datafile=%s lastobs=%d firstpass=%d lastpass=%d\nftol=%e stepm=%d ncovcol=%d nlstate=%d ndeath=%d maxwav=%d mle= 0 weight=%d\nmodel=%s\n", title, datafile, lastobs, firstpass,lastpass,ftol, stepm, ncovcol, nlstate, ndeath, maxwav, weightopt,model);
- jk=1;
fprintf(ficres,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n");
printf("# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n");
fprintf(ficlog,"# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n");
for(i=1,jk=1; i <=nlstate; i++){
for(k=1; k <=(nlstate+ndeath); k++){
- if (k != i)
- {
- printf("%d%d ",i,k);
- fprintf(ficlog,"%d%d ",i,k);
- fprintf(ficres,"%1d%1d ",i,k);
- for(j=1; j <=ncovmodel; j++){
- printf("%f ",p[jk]);
- fprintf(ficlog,"%f ",p[jk]);
- fprintf(ficres,"%f ",p[jk]);
- jk++;
- }
- printf("\n");
- fprintf(ficlog,"\n");
- fprintf(ficres,"\n");
+ if (k != i) {
+ printf("%d%d ",i,k);
+ fprintf(ficlog,"%d%d ",i,k);
+ fprintf(ficres,"%1d%1d ",i,k);
+ for(j=1; j <=ncovmodel; j++){
+ printf("%f ",p[jk]);
+ fprintf(ficlog,"%f ",p[jk]);
+ fprintf(ficres,"%f ",p[jk]);
+ jk++;
}
+ printf("\n");
+ fprintf(ficlog,"\n");
+ fprintf(ficres,"\n");
+ }
}
}
if(mle!=0){
}
fprintf(ficres,"# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n");
- if(mle==1)
+ if(mle>=1)
printf("# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n");
fprintf(ficlog,"# Covariance matrix \n# 121 Var(a12)\n# 122 Cov(b12,a12) Var(b12)\n# ...\n# 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n");
- for(i=1,k=1;i<=npar;i++){
- /* if (k>nlstate) k=1;
- i1=(i-1)/(ncovmodel*nlstate)+1;
- fprintf(ficres,"%s%d%d",alph[k],i1,tab[i]);
- printf("%s%d%d",alph[k],i1,tab[i]);
- */
- fprintf(ficres,"%3d",i);
- if(mle==1)
- printf("%3d",i);
- fprintf(ficlog,"%3d",i);
- for(j=1; j<=i;j++){
- fprintf(ficres," %.5e",matcov[i][j]);
- if(mle==1)
- printf(" %.5e",matcov[i][j]);
- fprintf(ficlog," %.5e",matcov[i][j]);
- }
- fprintf(ficres,"\n");
- if(mle==1)
- printf("\n");
- fprintf(ficlog,"\n");
- k++;
- }
-
+/* # 121 Var(a12)\n\ */
+/* # 122 Cov(b12,a12) Var(b12)\n\ */
+/* # 131 Cov(a13,a12) Cov(a13,b12, Var(a13)\n\ */
+/* # 132 Cov(b13,a12) Cov(b13,b12, Cov(b13,a13) Var(b13)\n\ */
+/* # 212 Cov(a21,a12) Cov(a21,b12, Cov(a21,a13) Cov(a21,b13) Var(a21)\n\ */
+/* # 212 Cov(b21,a12) Cov(b21,b12, Cov(b21,a13) Cov(b21,b13) Cov(b21,a21) Var(b21)\n\ */
+/* # 232 Cov(a23,a12) Cov(a23,b12, Cov(a23,a13) Cov(a23,b13) Cov(a23,a21) Cov(a23,b21) Var(a23)\n\ */
+/* # 232 Cov(b23,a12) Cov(b23,b12) ... Var (b23)\n" */
+
+
+/* Just to have a covariance matrix which will be more understandable
+ even is we still don't want to manage dictionary of variables
+*/
+ for(itimes=1;itimes<=2;itimes++){
+ jj=0;
+ for(i=1; i <=nlstate; i++){
+ for(j=1; j <=nlstate+ndeath; j++){
+ if(j==i) continue;
+ for(k=1; k<=ncovmodel;k++){
+ jj++;
+ ca[0]= k+'a'-1;ca[1]='\0';
+ if(itimes==1){
+ if(mle>=1)
+ printf("#%1d%1d%d",i,j,k);
+ fprintf(ficlog,"#%1d%1d%d",i,j,k);
+ fprintf(ficres,"#%1d%1d%d",i,j,k);
+ }else{
+ if(mle>=1)
+ printf("%1d%1d%d",i,j,k);
+ fprintf(ficlog,"%1d%1d%d",i,j,k);
+ fprintf(ficres,"%1d%1d%d",i,j,k);
+ }
+ ll=0;
+ for(li=1;li <=nlstate; li++){
+ for(lj=1;lj <=nlstate+ndeath; lj++){
+ if(lj==li) continue;
+ for(lk=1;lk<=ncovmodel;lk++){
+ ll++;
+ if(ll<=jj){
+ cb[0]= lk +'a'-1;cb[1]='\0';
+ if(ll<jj){
+ if(itimes==1){
+ if(mle>=1)
+ printf(" Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj);
+ fprintf(ficlog," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj);
+ fprintf(ficres," Cov(%s%1d%1d,%s%1d%1d)",ca,i,j,cb, li,lj);
+ }else{
+ if(mle>=1)
+ printf(" %.5e",matcov[jj][ll]);
+ fprintf(ficlog," %.5e",matcov[jj][ll]);
+ fprintf(ficres," %.5e",matcov[jj][ll]);
+ }
+ }else{
+ if(itimes==1){
+ if(mle>=1)
+ printf(" Var(%s%1d%1d)",ca,i,j);
+ fprintf(ficlog," Var(%s%1d%1d)",ca,i,j);
+ fprintf(ficres," Var(%s%1d%1d)",ca,i,j);
+ }else{
+ if(mle>=1)
+ printf(" %.5e",matcov[jj][ll]);
+ fprintf(ficlog," %.5e",matcov[jj][ll]);
+ fprintf(ficres," %.5e",matcov[jj][ll]);
+ }
+ }
+ }
+ } /* end lk */
+ } /* end lj */
+ } /* end li */
+ if(mle>=1)
+ printf("\n");
+ fprintf(ficlog,"\n");
+ fprintf(ficres,"\n");
+ numlinepar++;
+ } /* end k*/
+ } /*end j */
+ } /* end i */
+ } /* end itimes */
+
+ fflush(ficlog);
+ fflush(ficres);
+
while((c=getc(ficpar))=='#' && c!= EOF){
ungetc(c,ficpar);
fgets(line, MAXLINE, ficpar);
if((nberr >0) || (nbwarn>0)){
- printf("End of Imach with %d errors and/or warnings %d\n",nberr,nbwarn);
+ printf("End of Imach with %d errors and/or %d warnings\n",nberr,nbwarn);
fprintf(ficlog,"End of Imach with %d errors and/or warnings %d\n",nberr,nbwarn);
}else{
printf("End of Imach\n");