version 1.20, 2002/02/20 17:22:01
|
version 1.21, 2002/02/21 18:42:24
|
Line 67
|
Line 67
|
#define AGEBASE 40
|
#define AGEBASE 40
|
|
|
|
|
|
int erreur; /* Error number */
|
int nvar;
|
int nvar;
|
int cptcovn, cptcovage=0, cptcoveff=0,cptcov;
|
int cptcovn, cptcovage=0, cptcoveff=0,cptcov;
|
int npar=NPARMAX;
|
int npar=NPARMAX;
|
Line 901 void mlikeli(FILE *ficres,double p[], in
|
Line 902 void mlikeli(FILE *ficres,double p[], in
|
powell(p,xi,npar,ftol,&iter,&fret,func);
|
powell(p,xi,npar,ftol,&iter,&fret,func);
|
|
|
printf("\n#Number of iterations = %d, -2 Log likelihood = %.12f\n",iter,func(p));
|
printf("\n#Number of iterations = %d, -2 Log likelihood = %.12f\n",iter,func(p));
|
fprintf(ficres,"#Number of iterations = %d, -2 Log likelihood = %.12f ",iter,func(p));
|
fprintf(ficres,"#Number of iterations = %d, -2 Log likelihood = %.12f \n",iter,func(p));
|
|
|
}
|
}
|
|
|
Line 2632 ij=1;
|
Line 2633 ij=1;
|
}
|
}
|
|
|
fclose(ficgp);
|
fclose(ficgp);
|
|
/* end gnuplot */
|
|
|
chdir(path);
|
chdir(path);
|
|
|
Line 2824 fclose(fichtm);
|
Line 2826 fclose(fichtm);
|
|
|
fclose(ficrespij);
|
fclose(ficrespij);
|
|
|
|
if(stepm == 1) {
|
/*---------- Forecasting ------------------*/
|
/*---------- Forecasting ------------------*/
|
calagedate=(anproj1+mproj1/12.+jproj1/365.-dateintmean)*YEARM;
|
calagedate=(anproj1+mproj1/12.+jproj1/365.-dateintmean)*YEARM;
|
|
|
|
/*printf("calage= %f", calagedate);*/
|
|
|
prevalence(agemin, agemax, s, agev, nlstate, imx,Tvar,nbcode, ncodemax,mint,anint,dateprev1,dateprev2, calagedate);
|
prevalence(agemin, agemax, s, agev, nlstate, imx,Tvar,nbcode, ncodemax,mint,anint,dateprev1,dateprev2, calagedate);
|
|
|
|
|
Line 2910 fclose(fichtm);
|
Line 2915 fclose(fichtm);
|
fprintf(ficresf,"# StartingAge FinalAge");
|
fprintf(ficresf,"# StartingAge FinalAge");
|
for(j=1; j<=nlstate+ndeath;j++) fprintf(ficresf," P.%d",j);
|
for(j=1; j<=nlstate+ndeath;j++) fprintf(ficresf," P.%d",j);
|
if (popforecast==1) fprintf(ficresf," [Population]");
|
if (popforecast==1) fprintf(ficresf," [Population]");
|
|
|
for (cpt=0; cpt<=5;cpt++) {
|
for (cpt=0; cpt<4;cpt++) {
|
fprintf(ficresf,"\n");
|
fprintf(ficresf,"\n");
|
fprintf(ficresf,"\n# Forecasting at date %.lf/%.lf/%.lf ",jproj1,mproj1,anproj1+cpt);
|
fprintf(ficresf,"\n# Forecasting at date %.lf/%.lf/%.lf ",jproj1,mproj1,anproj1+cpt);
|
for (agedeb=(fage-((int)calagedate %12/12.)); agedeb>=(bage-((int)calagedate %12)/12.); agedeb--){ /* If stepm=6 months */
|
|
|
for (agedeb=(fage-((int)calagedate %12/12.)); agedeb>=(bage-((int)calagedate %12)/12.); agedeb--){ /* If stepm=6 months */
|
nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm);
|
nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm);
|
nhstepm = nhstepm/hstepm;
|
nhstepm = nhstepm/hstepm;
|
/*printf("agedeb=%.lf stepm=%d hstepm=%d nhstepm=%d \n",agedeb,stepm,hstepm,nhstepm);*/
|
/*printf("agedeb=%.lf stepm=%d hstepm=%d nhstepm=%d \n",agedeb,stepm,hstepm,nhstepm);*/
|
Line 2922 fclose(fichtm);
|
Line 2928 fclose(fichtm);
|
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
|
p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
|
oldm=oldms;savm=savms;
|
oldm=oldms;savm=savms;
|
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k);
|
hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k);
|
|
|
for (h=0; h<=nhstepm; h++){
|
for (h=0; h<=nhstepm; h++){
|
if (h==(int) (calagedate+YEARM*cpt)) {
|
if (h==(int) (calagedate+YEARM*cpt)) {
|
fprintf(ficresf,"\n %.f ",agedeb+h*hstepm/YEARM*stepm);
|
fprintf(ficresf,"\n %.f ",agedeb+h*hstepm/YEARM*stepm);
|
}
|
}
|
for(j=1; j<=nlstate+ndeath;j++) {
|
for(j=1; j<=nlstate+ndeath;j++) {
|
kk1=0.;kk2=0;
|
kk1=0.;kk2=0;
|
for(i=1; i<=nlstate;i++) {
|
for(i=1; i<=nlstate;i++) {
|
Line 2961 fclose(fichtm);
|
Line 2967 fclose(fichtm);
|
free_imatrix(s,1,maxwav+1,1,n);
|
free_imatrix(s,1,maxwav+1,1,n);
|
free_vector(weight,1,n);
|
free_vector(weight,1,n);
|
fclose(ficresf);
|
fclose(ficresf);
|
|
}/* End forecasting */
|
|
else{
|
|
erreur=108;
|
|
printf("Error %d!! You can only forecast the prevalences if the optimization\n has been performed with stepm = 1 (month) instead of %d\n", erreur, stepm);
|
|
}
|
|
|
/*---------- Health expectancies and variances ------------*/
|
/*---------- Health expectancies and variances ------------*/
|
|
|
strcpy(filerest,"t");
|
strcpy(filerest,"t");
|
Line 3098 strcpy(fileresvpl,"vpl");
|
Line 3110 strcpy(fileresvpl,"vpl");
|
|
|
free_ma3x(param,1,nlstate,1, nlstate+ndeath-1,1,ncovmodel);
|
free_ma3x(param,1,nlstate,1, nlstate+ndeath-1,1,ncovmodel);
|
|
|
printf("End of Imach\n");
|
if(erreur >0)
|
|
printf("End of Imach with error %d\n",erreur);
|
|
else printf("End of Imach\n");
|
/* gettimeofday(&end_time, (struct timezone*)0);*/ /* after time */
|
/* gettimeofday(&end_time, (struct timezone*)0);*/ /* after time */
|
|
|
/* printf("Total time was %d Sec. %d uSec.\n", end_time.tv_sec -start_time.tv_sec, end_time.tv_usec -start_time.tv_usec);*/
|
/* printf("Total time was %d Sec. %d uSec.\n", end_time.tv_sec -start_time.tv_sec, end_time.tv_usec -start_time.tv_usec);*/
|