version 1.292, 2019/05/09 14:17:20
|
version 1.301, 2019/06/04 13:51:20
|
Line 1
|
Line 1
|
/* $Id$ |
/* $Id$ |
$State$ |
$State$ |
$Log$ |
$Log$ |
|
Revision 1.301 2019/06/04 13:51:20 brouard |
|
Summary: Error in 'r'parameter file backcast yearsbproj instead of yearsfproj |
|
|
|
Revision 1.300 2019/05/22 19:09:45 brouard |
|
Summary: version 0.99r19 of May 2019 |
|
|
|
Revision 1.299 2019/05/22 18:37:08 brouard |
|
Summary: Cleaned 0.99r19 |
|
|
|
Revision 1.298 2019/05/22 18:19:56 brouard |
|
*** empty log message *** |
|
|
|
Revision 1.297 2019/05/22 17:56:10 brouard |
|
Summary: Fix bug by moving date2dmy and nhstepm which gaefin=-1 |
|
|
|
Revision 1.296 2019/05/20 13:03:18 brouard |
|
Summary: Projection syntax simplified |
|
|
|
|
|
We can now start projections, forward or backward, from the mean date |
|
of inteviews up to or down to a number of years of projection: |
|
prevforecast=1 yearsfproj=15.3 mobil_average=0 |
|
or |
|
prevforecast=1 starting-proj-date=1/1/2007 final-proj-date=12/31/2017 mobil_average=0 |
|
or |
|
prevbackcast=1 yearsbproj=12.3 mobil_average=1 |
|
or |
|
prevbackcast=1 starting-back-date=1/10/1999 final-back-date=1/1/1985 mobil_average=1 |
|
|
|
Revision 1.295 2019/05/18 09:52:50 brouard |
|
Summary: doxygen tex bug |
|
|
|
Revision 1.294 2019/05/16 14:54:33 brouard |
|
Summary: There was some wrong lines added |
|
|
|
Revision 1.293 2019/05/09 15:17:34 brouard |
|
*** empty log message *** |
|
|
Revision 1.292 2019/05/09 14:17:20 brouard |
Revision 1.292 2019/05/09 14:17:20 brouard |
Summary: Some updates |
Summary: Some updates |
|
|
Line 1088 typedef struct {
|
Line 1126 typedef struct {
|
/* $State$ */ |
/* $State$ */ |
#include "version.h" |
#include "version.h" |
char version[]=__IMACH_VERSION__; |
char version[]=__IMACH_VERSION__; |
char copyright[]="April 2018,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015-2018"; |
char copyright[]="May 2019,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015-2020"; |
char fullversion[]="$Revision$ $Date$"; |
char fullversion[]="$Revision$ $Date$"; |
char strstart[80]; |
char strstart[80]; |
char optionfilext[10], optionfilefiname[FILENAMELENGTH]; |
char optionfilext[10], optionfilefiname[FILENAMELENGTH]; |
Line 1253 double **pmmij, ***probs; /* Global poin
|
Line 1291 double **pmmij, ***probs; /* Global poin
|
double ***mobaverage, ***mobaverages; /* New global variable */ |
double ***mobaverage, ***mobaverages; /* New global variable */ |
double *ageexmed,*agecens; |
double *ageexmed,*agecens; |
double dateintmean=0; |
double dateintmean=0; |
|
double anprojd, mprojd, jprojd; /* For eventual projections */ |
|
double anprojf, mprojf, jprojf; |
|
|
|
double anbackd, mbackd, jbackd; /* For eventual backprojections */ |
|
double anbackf, mbackf, jbackf; |
|
double jintmean,mintmean,aintmean; |
double *weight; |
double *weight; |
int **s; /* Status */ |
int **s; /* Status */ |
double *agedc; |
double *agedc; |
Line 2966 double **pmij(double **ps, double *cov,
|
Line 3009 double **pmij(double **ps, double *cov,
|
ps[ii][ii]=1; |
ps[ii][ii]=1; |
} |
} |
} |
} |
|
|
|
|
/* for(ii=1; ii<= nlstate+ndeath; ii++){ */ |
/* for(ii=1; ii<= nlstate+ndeath; ii++){ */ |
/* for(jj=1; jj<= nlstate+ndeath; jj++){ */ |
/* for(jj=1; jj<= nlstate+ndeath; jj++){ */ |
/* printf(" pmij ps[%d][%d]=%lf ",ii,jj,ps[ii][jj]); */ |
/* printf(" pmij ps[%d][%d]=%lf ",ii,jj,ps[ii][jj]); */ |
Line 3018 double **pmij(double **ps, double *cov,
|
Line 3061 double **pmij(double **ps, double *cov,
|
sumnew=0.; |
sumnew=0.; |
/*for (ii=1;ii<=nlstate+ndeath;ii++){*/ |
/*for (ii=1;ii<=nlstate+ndeath;ii++){*/ |
for (ii=1;ii<=nlstate;ii++){ /* Only on live states */ |
for (ii=1;ii<=nlstate;ii++){ /* Only on live states */ |
/* printf(" agefin=%d, ii=%d, ij=%d, prev=%f\n",(int)agefin,ii, ij, prevacurrent[(int)agefin][ii][ij]); */ |
/* printf(" agefin=%d, ii=%d, ij=%d, prev=%f\n",(int)agefin,ii, ij, prevacurrent[(int)agefin][ii][ij]); */ |
sumnew+=prevacurrent[(int)agefin][ii][ij]; |
sumnew+=prevacurrent[(int)agefin][ii][ij]; |
} |
} |
if(sumnew >0.01){ /* At least some value in the prevalence */ |
if(sumnew >0.01){ /* At least some value in the prevalence */ |
Line 3134 double **bpmij(double **ps, double *cov,
|
Line 3177 double **bpmij(double **ps, double *cov,
|
ps[ii][ii]=1; |
ps[ii][ii]=1; |
} |
} |
} |
} |
/* Added for backcast */ /* Transposed matrix too */ |
/* Added for prevbcast */ /* Transposed matrix too */ |
for(jj=1; jj<= nlstate+ndeath; jj++){ |
for(jj=1; jj<= nlstate+ndeath; jj++){ |
s1=0.; |
s1=0.; |
for(ii=1; ii<= nlstate+ndeath; ii++){ |
for(ii=1; ii<= nlstate+ndeath; ii++){ |
Line 4393 void pstamp(FILE *fichier)
|
Line 4436 void pstamp(FILE *fichier)
|
fprintf(fichier,"# %s.%s\n#IMaCh version %s, %s\n#%s\n# %s", optionfilefiname,optionfilext,version,copyright, fullversion, strstart); |
fprintf(fichier,"# %s.%s\n#IMaCh version %s, %s\n#%s\n# %s", optionfilefiname,optionfilext,version,copyright, fullversion, strstart); |
} |
} |
|
|
|
void date2dmy(double date,double *day, double *month, double *year){ |
|
double yp=0., yp1=0., yp2=0.; |
|
|
|
yp1=modf(date,&yp);/* extracts integral of date in yp and |
|
fractional in yp1 */ |
|
*year=yp; |
|
yp2=modf((yp1*12),&yp); |
|
*month=yp; |
|
yp1=modf((yp2*30.5),&yp); |
|
*day=yp; |
|
if(*day==0) *day=1; |
|
if(*month==0) *month=1; |
|
} |
|
|
|
|
|
|
/************ Frequencies ********************/ |
/************ Frequencies ********************/ |
Line 4967 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 5024 Title=%s <br>Datafile=%s Firstpass=%d La
|
} |
} |
} /* end mle=-2 */ |
} /* end mle=-2 */ |
dateintmean=dateintsum/k2cpt; |
dateintmean=dateintsum/k2cpt; |
|
date2dmy(dateintmean,&jintmean,&mintmean,&aintmean); |
|
|
fclose(ficresp); |
fclose(ficresp); |
fclose(ficresphtm); |
fclose(ficresphtm); |
Line 5160 void prevalence(double ***probs, double
|
Line 5218 void prevalence(double ***probs, double
|
|
|
void concatwav(int wav[], int **dh, int **bh, int **mw, int **s, double *agedc, double **agev, int firstpass, int lastpass, int imx, int nlstate, int stepm) |
void concatwav(int wav[], int **dh, int **bh, int **mw, int **s, double *agedc, double **agev, int firstpass, int lastpass, int imx, int nlstate, int stepm) |
{ |
{ |
/* Concatenates waves: wav[i] is the number of effective (useful waves) of individual i. |
/* Concatenates waves: wav[i] is the number of effective (useful waves in the sense that a non interview is useless) of individual i. |
Death is a valid wave (if date is known). |
Death is a valid wave (if date is known). |
mw[mi][i] is the mi (mi=1 to wav[i]) effective wave of individual i |
mw[mi][i] is the mi (mi=1 to wav[i]) effective wave of individual i |
dh[m][i] or dh[mw[mi][i]][i] is the delay between two effective waves m=mw[mi][i] |
dh[m][i] or dh[mw[mi][i]][i] is the delay between two effective waves m=mw[mi][i] |
and mw[mi+1][i]. dh depends on stepm. |
and mw[mi+1][i]. dh depends on stepm. s[m][i] exists for any wave from firstpass to lastpass |
*/ |
*/ |
|
|
int i=0, mi=0, m=0, mli=0; |
int i=0, mi=0, m=0, mli=0; |
Line 6009 void concatwav(int wav[], int **dh, int
|
Line 6067 void concatwav(int wav[], int **dh, int
|
prlim[i][i]=mobaverage[(int)age][i][ij]; |
prlim[i][i]=mobaverage[(int)age][i][ij]; |
} |
} |
} |
} |
/**< Computes the shifted transition matrix \f$ {}{h}_p^{ij}_x\f$ at horizon h. |
/**< Computes the shifted transition matrix \f$ {}{h}_p^{ij}x\f$ at horizon h. |
*/ |
*/ |
hpxij(p3mat,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, ij,nres); /* Returns p3mat[i][j][h] for h=0 to nhstepm */ |
hpxij(p3mat,nhstepm,age,hstepm,xp,nlstate,stepm,oldm,savm, ij,nres); /* Returns p3mat[i][j][h] for h=0 to nhstepm */ |
/**< And for each alive state j, sums over i \f$ w^i_x {}{h}_p^{ij}x\f$, which are the probability |
/**< And for each alive state j, sums over i \f$ w^i_x {}{h}_p^{ij}x\f$, which are the probability |
Line 6802 To be simple, these graphs help to under
|
Line 6860 To be simple, these graphs help to under
|
void printinghtml(char fileresu[], char title[], char datafile[], int firstpass, \ |
void printinghtml(char fileresu[], char title[], char datafile[], int firstpass, \ |
int lastpass, int stepm, int weightopt, char model[],\ |
int lastpass, int stepm, int weightopt, char model[],\ |
int imx,int jmin, int jmax, double jmeanint,char rfileres[],\ |
int imx,int jmin, int jmax, double jmeanint,char rfileres[],\ |
int popforecast, int mobilav, int prevfcast, int mobilavproj, int backcast, int estepm , \ |
int popforecast, int mobilav, int prevfcast, int mobilavproj, int prevbcast, int estepm , \ |
double jprev1, double mprev1,double anprev1, double dateprev1, double dateproj1, double dateback1, \ |
double jprev1, double mprev1,double anprev1, double dateprev1, double dateprojd, double dateback1, \ |
double jprev2, double mprev2,double anprev2, double dateprev2, double dateproj2, double dateback2){ |
double jprev2, double mprev2,double anprev2, double dateprev2, double dateprojf, double dateback2){ |
int jj1, k1, i1, cpt, k4, nres; |
int jj1, k1, i1, cpt, k4, nres; |
|
|
fprintf(fichtm,"<ul><li><a href='#firstorder'>Result files (first order: no variance)</a>\n \ |
fprintf(fichtm,"<ul><li><a href='#firstorder'>Result files (first order: no variance)</a>\n \ |
Line 6948 divided by h: <sub>h</sub>P<sub>ij</sub>
|
Line 7006 divided by h: <sub>h</sub>P<sub>ij</sub>
|
fprintf(fichtm,"<br>\n- Convergence to period (stable) prevalence in state %d. Or probability for a person being in state (1 to %d) at different ages, to be in state %d some years after. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
fprintf(fichtm,"<br>\n- Convergence to period (stable) prevalence in state %d. Or probability for a person being in state (1 to %d) at different ages, to be in state %d some years after. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
<img src=\"%s_%d-%d-%d.svg\">", cpt, nlstate, cpt, subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
<img src=\"%s_%d-%d-%d.svg\">", cpt, nlstate, cpt, subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres,subdirf2(optionfilefiname,"P_"),cpt,k1,nres); |
} |
} |
if(backcast==1){ |
if(prevbcast==1){ |
/* Backward prevalence in each health state */ |
/* Backward prevalence in each health state */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>\n- Convergence to mixed (stable) back prevalence in state %d. Or probability for a person to be in state %d at a younger age, knowing that she/he was in state (1 to %d) at different older ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
fprintf(fichtm,"<br>\n- Convergence to mixed (stable) back prevalence in state %d. Or probability for a person to be in state %d at a younger age, knowing that she/he was in state (1 to %d) at different older ages. <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
Line 6959 divided by h: <sub>h</sub>P<sub>ij</sub>
|
Line 7017 divided by h: <sub>h</sub>P<sub>ij</sub>
|
/* Projection of prevalence up to period (forward stable) prevalence in each health state */ |
/* Projection of prevalence up to period (forward stable) prevalence in each health state */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>\n- Projection of cross-sectional prevalence (estimated with cases observed from %.1f to %.1f and mobil_average=%d), from year %.1f up to year %.1f tending to period (stable) forward prevalence in state %d. Or probability to be in state %d being in an observed weighted state (from 1 to %d). <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
fprintf(fichtm,"<br>\n- Projection of cross-sectional prevalence (estimated with cases observed from %.1f to %.1f and mobil_average=%d), from year %.1f up to year %.1f tending to period (stable) forward prevalence in state %d. Or probability to be in state %d being in an observed weighted state (from 1 to %d). <a href=\"%s_%d-%d-%d.svg\">%s_%d-%d-%d.svg</a><br> \ |
<img src=\"%s_%d-%d-%d.svg\">", dateprev1, dateprev2, mobilavproj, dateproj1, dateproj2, cpt, cpt, nlstate, subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres); |
<img src=\"%s_%d-%d-%d.svg\">", dateprev1, dateprev2, mobilavproj, dateprojd, dateprojf, cpt, cpt, nlstate, subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres,subdirf2(optionfilefiname,"PROJ_"),cpt,k1,nres); |
} |
} |
} |
} |
if(backcast==1){ |
if(prevbcast==1){ |
/* Back projection of prevalence up to stable (mixed) back-prevalence in each health state */ |
/* Back projection of prevalence up to stable (mixed) back-prevalence in each health state */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>\n- Back projection of cross-sectional prevalence (estimated with cases observed from %.1f to %.1f and mobil_average=%d), \ |
fprintf(fichtm,"<br>\n- Back projection of cross-sectional prevalence (estimated with cases observed from %.1f to %.1f and mobil_average=%d), \ |
Line 7075 true period expectancies (those weighted
|
Line 7133 true period expectancies (those weighted
|
} |
} |
|
|
/******************* Gnuplot file **************/ |
/******************* Gnuplot file **************/ |
void printinggnuplot(char fileresu[], char optionfilefiname[], double ageminpar, double agemaxpar, double bage, double fage , int prevfcast, int backcast, char pathc[], double p[], int offyear, int offbyear){ |
void printinggnuplot(char fileresu[], char optionfilefiname[], double ageminpar, double agemaxpar, double bage, double fage , int prevfcast, int prevbcast, char pathc[], double p[], int offyear, int offbyear){ |
|
|
char dirfileres[132],optfileres[132]; |
char dirfileres[132],optfileres[132]; |
char gplotcondition[132], gplotlabel[132]; |
char gplotcondition[132], gplotlabel[132]; |
Line 7229 void printinggnuplot(char fileresu[], ch
|
Line 7287 void printinggnuplot(char fileresu[], ch
|
} /* end covariate */ |
} /* end covariate */ |
} /* end if no covariate */ |
} /* end if no covariate */ |
|
|
if(backcast==1){ /* We need to get the corresponding values of the covariates involved in this combination k1 */ |
if(prevbcast==1){ /* We need to get the corresponding values of the covariates involved in this combination k1 */ |
/* fprintf(ficgp,",\"%s\" every :::%d::%d u 1:($%d) t\"Backward stable prevalence\" w l lt 3",subdirf2(fileresu,"PLB_"),k1-1,k1-1,1+cpt); */ |
/* fprintf(ficgp,",\"%s\" every :::%d::%d u 1:($%d) t\"Backward stable prevalence\" w l lt 3",subdirf2(fileresu,"PLB_"),k1-1,k1-1,1+cpt); */ |
fprintf(ficgp,",\"%s\" u 1:((",subdirf2(fileresu,"PLB_")); /* Age is in 1, nres in 2 to be fixed */ |
fprintf(ficgp,",\"%s\" u 1:((",subdirf2(fileresu,"PLB_")); /* Age is in 1, nres in 2 to be fixed */ |
if(cptcoveff ==0){ |
if(cptcoveff ==0){ |
Line 7256 void printinggnuplot(char fileresu[], ch
|
Line 7314 void printinggnuplot(char fileresu[], ch
|
} |
} |
} /* end covariate */ |
} /* end covariate */ |
} /* end if no covariate */ |
} /* end if no covariate */ |
if(backcast == 1){ |
if(prevbcast == 1){ |
fprintf(ficgp,", \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",subdirf2(fileresu,"VBL_"),nres-1,nres-1,nres); |
fprintf(ficgp,", \"%s\" every :::%d::%d u 1:($2==%d ? $3:1/0) \"%%lf %%lf",subdirf2(fileresu,"VBL_"),nres-1,nres-1,nres); |
/* k1-1 error should be nres-1*/ |
/* k1-1 error should be nres-1*/ |
for (i=1; i<= nlstate ; i ++) { |
for (i=1; i<= nlstate ; i ++) { |
Line 7275 void printinggnuplot(char fileresu[], ch
|
Line 7333 void printinggnuplot(char fileresu[], ch
|
} |
} |
fprintf(ficgp,"\" t\"\" w l lt 4"); |
fprintf(ficgp,"\" t\"\" w l lt 4"); |
} /* end if backprojcast */ |
} /* end if backprojcast */ |
} /* end if backcast */ |
} /* end if prevbcast */ |
/* fprintf(ficgp,"\nset out ;unset label;\n"); */ |
/* fprintf(ficgp,"\nset out ;unset label;\n"); */ |
fprintf(ficgp,"\nset out ;unset title;\n"); |
fprintf(ficgp,"\nset out ;unset title;\n"); |
} /* nres */ |
} /* nres */ |
Line 7563 set ter svg size 640, 480\nunset log y\n
|
Line 7621 set ter svg size 640, 480\nunset log y\n
|
|
|
|
|
/* 7eme */ |
/* 7eme */ |
if(backcast == 1){ |
if(prevbcast == 1){ |
/* CV backward prevalence for each covariate */ |
/* CV backward prevalence for each covariate */ |
for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
for(nres=1; nres <= nresult; nres++){ /* For each resultline */ |
Line 7615 set ter svg size 640, 480\nunset log y\n
|
Line 7673 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficgp,"\nset out; unset label;\n"); |
fprintf(ficgp,"\nset out; unset label;\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end covariate */ |
} /* end covariate */ |
} /* End if backcast */ |
} /* End if prevbcast */ |
|
|
/* 8eme */ |
/* 8eme */ |
if(prevfcast==1){ |
if(prevfcast==1){ |
Line 7731 set ter svg size 640, 480\nunset log y\n
|
Line 7789 set ter svg size 640, 480\nunset log y\n
|
} /* end covariate */ |
} /* end covariate */ |
} /* End if prevfcast */ |
} /* End if prevfcast */ |
|
|
if(backcast==1){ |
if(prevbcast==1){ |
/* Back projection from cross-sectional to stable (mixed) for each covariate */ |
/* Back projection from cross-sectional to stable (mixed) for each covariate */ |
|
|
for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */ |
Line 7844 set ter svg size 640, 480\nunset log y\n
|
Line 7902 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficgp,"\nset out; unset label;\n"); |
fprintf(ficgp,"\nset out; unset label;\n"); |
} /* end cpt state*/ |
} /* end cpt state*/ |
} /* end covariate */ |
} /* end covariate */ |
} /* End if backcast */ |
} /* End if prevbcast */ |
|
|
|
|
/* 9eme writing MLE parameters */ |
/* 9eme writing MLE parameters */ |
Line 8292 set ter svg size 640, 480\nunset log y\n
|
Line 8350 set ter svg size 640, 480\nunset log y\n
|
}/* End movingaverage */ |
}/* End movingaverage */ |
|
|
|
|
|
|
/************** Forecasting ******************/ |
/************** Forecasting ******************/ |
void prevforecast(char fileres[], double anproj1, double mproj1, double jproj1, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double ***prev, double bage, double fage, int firstpass, int lastpass, double anproj2, double p[], int cptcoveff){ |
/* void prevforecast(char fileres[], double dateintmean, double anprojd, double mprojd, double jprojd, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double ***prev, double bage, double fage, int firstpass, int lastpass, double anprojf, double p[], int cptcoveff)*/ |
/* proj1, year, month, day of starting projection |
void prevforecast(char fileres[], double dateintmean, double dateprojd, double dateprojf, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double ***prev, double bage, double fage, int firstpass, int lastpass, double p[], int cptcoveff){ |
|
/* dateintemean, mean date of interviews |
|
dateprojd, year, month, day of starting projection |
|
dateprojf date of end of projection;year of end of projection (same day and month as proj1). |
agemin, agemax range of age |
agemin, agemax range of age |
dateprev1 dateprev2 range of dates during which prevalence is computed |
dateprev1 dateprev2 range of dates during which prevalence is computed |
anproj2 year of en of projection (same day and month as proj1). |
|
*/ |
*/ |
|
/* double anprojd, mprojd, jprojd; */ |
|
/* double anprojf, mprojf, jprojf; */ |
int yearp, stepsize, hstepm, nhstepm, j, k, cptcod, i, h, i1, k4, nres=0; |
int yearp, stepsize, hstepm, nhstepm, j, k, cptcod, i, h, i1, k4, nres=0; |
double agec; /* generic age */ |
double agec; /* generic age */ |
double agelim, ppij, yp,yp1,yp2,jprojmean,mprojmean,anprojmean; |
double agelim, ppij, yp,yp1,yp2; |
double *popeffectif,*popcount; |
double *popeffectif,*popcount; |
double ***p3mat; |
double ***p3mat; |
/* double ***mobaverage; */ |
/* double ***mobaverage; */ |
Line 8338 set ter svg size 640, 480\nunset log y\n
|
Line 8401 set ter svg size 640, 480\nunset log y\n
|
if(estepm > stepm){ /* Yes every two year */ |
if(estepm > stepm){ /* Yes every two year */ |
stepsize=2; |
stepsize=2; |
} |
} |
|
hstepm=hstepm/stepm; |
|
|
hstepm=hstepm/stepm; |
|
yp1=modf(dateintmean,&yp);/* extracts integral of datemean in yp and |
/* yp1=modf(dateintmean,&yp);/\* extracts integral of datemean in yp and */ |
fractional in yp1 */ |
/* fractional in yp1 *\/ */ |
anprojmean=yp; |
/* aintmean=yp; */ |
yp2=modf((yp1*12),&yp); |
/* yp2=modf((yp1*12),&yp); */ |
mprojmean=yp; |
/* mintmean=yp; */ |
yp1=modf((yp2*30.5),&yp); |
/* yp1=modf((yp2*30.5),&yp); */ |
jprojmean=yp; |
/* jintmean=yp; */ |
if(jprojmean==0) jprojmean=1; |
/* if(jintmean==0) jintmean=1; */ |
if(mprojmean==0) jprojmean=1; |
/* if(mintmean==0) mintmean=1; */ |
|
|
|
|
|
/* date2dmy(dateintmean,&jintmean,&mintmean,&aintmean); */ |
|
/* date2dmy(dateprojd,&jprojd, &mprojd, &anprojd); */ |
|
/* date2dmy(dateprojf,&jprojf, &mprojf, &anprojf); */ |
i1=pow(2,cptcoveff); |
i1=pow(2,cptcoveff); |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
fprintf(ficresf,"# Mean day of interviews %.lf/%.lf/%.lf (%.2f) between %.2f and %.2f \n",jprojmean,mprojmean,anprojmean,dateintmean,dateprev1,dateprev2); |
fprintf(ficresf,"# Mean day of interviews %.lf/%.lf/%.lf (%.2f) between %.2f and %.2f \n",jintmean,mintmean,aintmean,dateintmean,dateprev1,dateprev2); |
|
|
fprintf(ficresf,"#****** Routine prevforecast **\n"); |
fprintf(ficresf,"#****** Routine prevforecast **\n"); |
|
|
Line 8379 set ter svg size 640, 480\nunset log y\n
|
Line 8447 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficresf," p%d%d",i,j); |
fprintf(ficresf," p%d%d",i,j); |
fprintf(ficresf," wp.%d",j); |
fprintf(ficresf," wp.%d",j); |
} |
} |
for (yearp=0; yearp<=(anproj2-anproj1);yearp +=stepsize) { |
for (yearp=0; yearp<=(anprojf-anprojd);yearp +=stepsize) { |
fprintf(ficresf,"\n"); |
fprintf(ficresf,"\n"); |
fprintf(ficresf,"\n# Forecasting at date %.lf/%.lf/%.lf ",jproj1,mproj1,anproj1+yearp); |
fprintf(ficresf,"\n# Forecasting at date %.lf/%.lf/%.lf ",jprojd,mprojd,anprojd+yearp); |
/* for (agec=fage; agec>=(ageminpar-1); agec--){ */ |
/* for (agec=fage; agec>=(ageminpar-1); agec--){ */ |
for (agec=fage; agec>=(bage); agec--){ |
for (agec=fage; agec>=(bage); agec--){ |
nhstepm=(int) rint((agelim-agec)*YEARM/stepm); |
nhstepm=(int) rint((agelim-agec)*YEARM/stepm); |
Line 8399 set ter svg size 640, 480\nunset log y\n
|
Line 8467 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficresf,"\n"); |
fprintf(ficresf,"\n"); |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficresf,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresf,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresf,"%.f %.f ",anproj1+yearp,agec+h*hstepm/YEARM*stepm); |
fprintf(ficresf,"%.f %.f ",anprojd+yearp,agec+h*hstepm/YEARM*stepm); |
|
|
for(j=1; j<=nlstate+ndeath;j++) { |
for(j=1; j<=nlstate+ndeath;j++) { |
ppij=0.; |
ppij=0.; |
Line 8427 set ter svg size 640, 480\nunset log y\n
|
Line 8495 set ter svg size 640, 480\nunset log y\n
|
} |
} |
|
|
/************** Back Forecasting ******************/ |
/************** Back Forecasting ******************/ |
void prevbackforecast(char fileres[], double ***prevacurrent, double anback1, double mback1, double jback1, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double bage, double fage, int firstpass, int lastpass, double anback2, double p[], int cptcoveff){ |
/* void prevbackforecast(char fileres[], double ***prevacurrent, double anback1, double mback1, double jback1, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double bage, double fage, int firstpass, int lastpass, double anback2, double p[], int cptcoveff){ */ |
/* back1, year, month, day of starting backection |
void prevbackforecast(char fileres[], double ***prevacurrent, double dateintmean, double dateprojd, double dateprojf, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double bage, double fage, int firstpass, int lastpass, double p[], int cptcoveff){ |
|
/* back1, year, month, day of starting backprojection |
agemin, agemax range of age |
agemin, agemax range of age |
dateprev1 dateprev2 range of dates during which prevalence is computed |
dateprev1 dateprev2 range of dates during which prevalence is computed |
anback2 year of end of backprojection (same day and month as back1). |
anback2 year of end of backprojection (same day and month as back1). |
Line 8436 set ter svg size 640, 480\nunset log y\n
|
Line 8505 set ter svg size 640, 480\nunset log y\n
|
*/ |
*/ |
int yearp, stepsize, hstepm, nhstepm, j, k, cptcod, i, h, i1, k4, nres=0; |
int yearp, stepsize, hstepm, nhstepm, j, k, cptcod, i, h, i1, k4, nres=0; |
double agec; /* generic age */ |
double agec; /* generic age */ |
double agelim, ppij, ppi, yp,yp1,yp2,jprojmean,mprojmean,anprojmean; |
double agelim, ppij, ppi, yp,yp1,yp2,jintmean,mintmean,aintmean; |
double *popeffectif,*popcount; |
double *popeffectif,*popcount; |
double ***p3mat; |
double ***p3mat; |
/* double ***mobaverage; */ |
/* double ***mobaverage; */ |
Line 8479 set ter svg size 640, 480\nunset log y\n
|
Line 8548 set ter svg size 640, 480\nunset log y\n
|
} |
} |
|
|
hstepm=hstepm/stepm; |
hstepm=hstepm/stepm; |
yp1=modf(dateintmean,&yp);/* extracts integral of datemean in yp and |
/* yp1=modf(dateintmean,&yp);/\* extracts integral of datemean in yp and */ |
fractional in yp1 */ |
/* fractional in yp1 *\/ */ |
anprojmean=yp; |
/* aintmean=yp; */ |
yp2=modf((yp1*12),&yp); |
/* yp2=modf((yp1*12),&yp); */ |
mprojmean=yp; |
/* mintmean=yp; */ |
yp1=modf((yp2*30.5),&yp); |
/* yp1=modf((yp2*30.5),&yp); */ |
jprojmean=yp; |
/* jintmean=yp; */ |
if(jprojmean==0) jprojmean=1; |
/* if(jintmean==0) jintmean=1; */ |
if(mprojmean==0) jprojmean=1; |
/* if(mintmean==0) jintmean=1; */ |
|
|
i1=pow(2,cptcoveff); |
i1=pow(2,cptcoveff); |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
fprintf(ficresfb,"# Mean day of interviews %.lf/%.lf/%.lf (%.2f) between %.2f and %.2f \n",jprojmean,mprojmean,anprojmean,dateintmean,dateprev1,dateprev2); |
fprintf(ficresfb,"# Mean day of interviews %.lf/%.lf/%.lf (%.2f) between %.2f and %.2f \n",jintmean,mintmean,aintmean,dateintmean,dateprev1,dateprev2); |
printf("# Mean day of interviews %.lf/%.lf/%.lf (%.2f) between %.2f and %.2f \n",jprojmean,mprojmean,anprojmean,dateintmean,dateprev1,dateprev2); |
printf("# Mean day of interviews %.lf/%.lf/%.lf (%.2f) between %.2f and %.2f \n",jintmean,mintmean,aintmean,dateintmean,dateprev1,dateprev2); |
|
|
fprintf(ficresfb,"#****** Routine prevbackforecast **\n"); |
fprintf(ficresfb,"#****** Routine prevbackforecast **\n"); |
|
|
Line 8518 set ter svg size 640, 480\nunset log y\n
|
Line 8587 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficresfb," b%d%d",i,j); |
fprintf(ficresfb," b%d%d",i,j); |
fprintf(ficresfb," b.%d",j); |
fprintf(ficresfb," b.%d",j); |
} |
} |
for (yearp=0; yearp>=(anback2-anback1);yearp -=stepsize) { |
for (yearp=0; yearp>=(anbackf-anbackd);yearp -=stepsize) { |
/* for (yearp=0; yearp<=(anproj2-anproj1);yearp +=stepsize) { */ |
/* for (yearp=0; yearp<=(anproj2-anproj1);yearp +=stepsize) { */ |
fprintf(ficresfb,"\n"); |
fprintf(ficresfb,"\n"); |
fprintf(ficresfb,"\n# Back Forecasting at date %.lf/%.lf/%.lf ",jback1,mback1,anback1+yearp); |
fprintf(ficresfb,"\n# Back Forecasting at date %.lf/%.lf/%.lf ",jbackd,mbackd,anbackd+yearp); |
/* printf("\n# Back Forecasting at date %.lf/%.lf/%.lf ",jback1,mback1,anback1+yearp); */ |
/* printf("\n# Back Forecasting at date %.lf/%.lf/%.lf ",jback1,mback1,anback1+yearp); */ |
/* for (agec=bage; agec<=agemax-1; agec++){ /\* testing *\/ */ |
/* for (agec=bage; agec<=agemax-1; agec++){ /\* testing *\/ */ |
for (agec=bage; agec<=fage; agec++){ /* testing */ |
for (agec=bage; agec<=fage; agec++){ /* testing */ |
Line 8544 set ter svg size 640, 480\nunset log y\n
|
Line 8613 set ter svg size 640, 480\nunset log y\n
|
fprintf(ficresfb,"\n"); |
fprintf(ficresfb,"\n"); |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficresfb,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresfb,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,j)]); |
fprintf(ficresfb,"%.f %.f ",anback1+yearp,agec-h*hstepm/YEARM*stepm); |
fprintf(ficresfb,"%.f %.f ",anbackd+yearp,agec-h*hstepm/YEARM*stepm); |
for(i=1; i<=nlstate+ndeath;i++) { |
for(i=1; i<=nlstate+ndeath;i++) { |
ppij=0.;ppi=0.; |
ppij=0.;ppi=0.; |
for(j=1; j<=nlstate;j++) { |
for(j=1; j<=nlstate;j++) { |
Line 10694 int hPijx(double *p, int bage, int fage)
|
Line 10763 int hPijx(double *p, int bage, int fage)
|
/* for (agedeb=fage; agedeb>=bage; agedeb--){ /\* If stepm=6 months *\/ */ |
/* for (agedeb=fage; agedeb>=bage; agedeb--){ /\* If stepm=6 months *\/ */ |
for (agedeb=bage; agedeb<=fage; agedeb++){ /* If stepm=6 months and estepm=24 (2 years) */ |
for (agedeb=bage; agedeb<=fage; agedeb++){ /* If stepm=6 months and estepm=24 (2 years) */ |
/* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */ |
/* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */ |
nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ |
nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm+0.1)-1; /* Typically 20 years = 20*12/6=40 or 55*12/24=27.5-1.1=>27 */ |
nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 */ |
nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 or 28*/ |
|
|
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
/* nhstepm=nhstepm*YEARM; aff par mois*/ |
|
|
Line 10787 int main(int argc, char *argv[])
|
Line 10856 int main(int argc, char *argv[])
|
|
|
int *tab; |
int *tab; |
int mobilavproj=0 , prevfcast=0 ; /* moving average of prev, If prevfcast=1 prevalence projection */ |
int mobilavproj=0 , prevfcast=0 ; /* moving average of prev, If prevfcast=1 prevalence projection */ |
/* int backcast=0; */ /* defined as global for mlikeli and mle */ |
/* double anprojd, mprojd, jprojd; /\* For eventual projections *\/ */ |
|
/* double anprojf, mprojf, jprojf; */ |
|
/* double jintmean,mintmean,aintmean; */ |
|
int prvforecast = 0; /* Might be 1 (date of beginning of projection is a choice or 2 is the dateintmean */ |
|
int prvbackcast = 0; /* Might be 1 (date of beginning of projection is a choice or 2 is the dateintmean */ |
|
double yrfproj= 10.0; /* Number of years of forward projections */ |
|
double yrbproj= 10.0; /* Number of years of backward projections */ |
|
int prevbcast=0; /* defined as global for mlikeli and mle, replacing backcast */ |
int mobilav=0,popforecast=0; |
int mobilav=0,popforecast=0; |
int hstepm=0, nhstepm=0; |
int hstepm=0, nhstepm=0; |
int agemortsup; |
int agemortsup; |
Line 10812 int main(int argc, char *argv[])
|
Line 10888 int main(int argc, char *argv[])
|
double *epj, vepp; |
double *epj, vepp; |
|
|
double dateprev1, dateprev2; |
double dateprev1, dateprev2; |
double jproj1=1,mproj1=1,anproj1=2000,jproj2=1,mproj2=1,anproj2=2000, dateproj1=0, dateproj2=0; |
double jproj1=1,mproj1=1,anproj1=2000,jproj2=1,mproj2=1,anproj2=2000, dateproj1=0, dateproj2=0, dateprojd=0, dateprojf=0; |
double jback1=1,mback1=1,anback1=2000,jback2=1,mback2=1,anback2=2000, dateback1=0, dateback2=0; |
double jback1=1,mback1=1,anback1=2000,jback2=1,mback2=1,anback2=2000, dateback1=0, dateback2=0, datebackd=0, datebackf=0; |
|
|
|
|
double **ximort; |
double **ximort; |
char *alph[]={"a","a","b","c","d","e"}, str[4]="1234"; |
char *alph[]={"a","a","b","c","d","e"}, str[4]="1234"; |
Line 12162 Please run with mle=-1 to get a correct
|
Line 12239 Please run with mle=-1 to get a correct
|
fputs(line,stdout); |
fputs(line,stdout); |
fputs(line,ficparo); |
fputs(line,ficparo); |
fputs(line,ficlog); |
fputs(line,ficlog); |
|
fputs(line,ficres); |
continue; |
continue; |
}else |
}else |
break; |
break; |
Line 12207 Please run with mle=-1 to get a correct
|
Line 12285 Please run with mle=-1 to get a correct
|
fputs(line,stdout); |
fputs(line,stdout); |
fputs(line,ficparo); |
fputs(line,ficparo); |
fputs(line,ficlog); |
fputs(line,ficlog); |
|
fputs(line,ficres); |
continue; |
continue; |
}else |
}else |
break; |
break; |
Line 12232 Please run with mle=-1 to get a correct
|
Line 12311 Please run with mle=-1 to get a correct
|
fputs(line,stdout); |
fputs(line,stdout); |
fputs(line,ficparo); |
fputs(line,ficparo); |
fputs(line,ficlog); |
fputs(line,ficlog); |
|
fputs(line,ficres); |
continue; |
continue; |
}else |
}else |
break; |
break; |
Line 12265 Please run with mle=-1 to get a correct
|
Line 12345 Please run with mle=-1 to get a correct
|
fputs(line,stdout); |
fputs(line,stdout); |
fputs(line,ficparo); |
fputs(line,ficparo); |
fputs(line,ficlog); |
fputs(line,ficlog); |
|
fputs(line,ficres); |
continue; |
continue; |
}else if(sscanf(line,"prevforecast=%[^\n]\n",modeltemp)) |
}else if(sscanf(line,"prevforecast=%[^\n]\n",modeltemp)) |
parameterline=11; |
parameterline=11; |
else if(sscanf(line,"backcast=%[^\n]\n",modeltemp)) |
else if(sscanf(line,"prevbackcast=%[^\n]\n",modeltemp)) |
parameterline=12; |
parameterline=12; |
else if(sscanf(line,"result:%[^\n]\n",modeltemp)) |
else if(sscanf(line,"result:%[^\n]\n",modeltemp)) |
parameterline=13; |
parameterline=13; |
Line 12277 Please run with mle=-1 to get a correct
|
Line 12358 Please run with mle=-1 to get a correct
|
} |
} |
switch (parameterline){ |
switch (parameterline){ |
case 11: |
case 11: |
if((num_filled=sscanf(line,"prevforecast=%d starting-proj-date=%lf/%lf/%lf final-proj-date=%lf/%lf/%lf mobil_average=%d\n",&prevfcast,&jproj1,&mproj1,&anproj1,&jproj2,&mproj2,&anproj2,&mobilavproj)) !=EOF){ |
if((num_filled=sscanf(line,"prevforecast=%d starting-proj-date=%lf/%lf/%lf final-proj-date=%lf/%lf/%lf mobil_average=%d\n",&prevfcast,&jproj1,&mproj1,&anproj1,&jproj2,&mproj2,&anproj2,&mobilavproj)) !=EOF && (num_filled == 8)){ |
if (num_filled != 8) { |
fprintf(ficparo,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
printf("Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mobil_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); |
|
fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mov_average=0\n, your line=%s . Probably you are running an older format.\n",num_filled,line); |
|
goto end; |
|
} |
|
fprintf(ficparo,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
|
printf("prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
printf("prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
fprintf(ficlog,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
fprintf(ficlog,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
fprintf(ficres,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
fprintf(ficres,"prevforecast=%d starting-proj-date=%.lf/%.lf/%.lf final-proj-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevfcast,jproj1,mproj1,anproj1,jproj2,mproj2,anproj2,mobilavproj); |
/* day and month of proj2 are not used but only year anproj2.*/ |
/* day and month of proj2 are not used but only year anproj2.*/ |
dateproj1=anproj1+(mproj1-1)/12.+(jproj1-1)/365.; |
dateproj1=anproj1+(mproj1-1)/12.+(jproj1-1)/365.; |
dateproj2=anproj2+(mproj2-1)/12.+(jproj2-1)/365.; |
dateproj2=anproj2+(mproj2-1)/12.+(jproj2-1)/365.; |
|
prvforecast = 1; |
|
} |
|
else if((num_filled=sscanf(line,"prevforecast=%d yearsfproj=%lf mobil_average=%d\n",&prevfcast,&yrfproj,&mobilavproj)) !=EOF){/* && (num_filled == 3))*/ |
|
printf("prevforecast=%d yearsfproj=%lf mobil_average=%d\n",prevfcast,yrfproj,mobilavproj); |
|
fprintf(ficlog,"prevforecast=%d yearsfproj=%lf mobil_average=%d\n",prevfcast,yrfproj,mobilavproj); |
|
fprintf(ficres,"prevforecast=%d yearsfproj=%lf mobil_average=%d\n",prevfcast,yrfproj,mobilavproj); |
|
prvforecast = 2; |
|
} |
|
else { |
|
printf("Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mobil_average=0\nnor 3 (data)parameters, for example:prevforecast=1 yearsfproj=10 mobil_average=0. Your line=%s . You are running probably an older format.\n, ",num_filled,line); |
|
fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:prevforecast=1 starting-proj-date=1/1/1990 final-proj-date=1/1/2000 mobil_average=0\nnor 3 (data)parameters, for example:prevforecast=1 yearproj=10 mobil_average=0. Your line=%s . You are running probably an older format.\n, ",num_filled,line); |
|
goto end; |
} |
} |
break; |
break; |
case 12: |
case 12: |
/*fscanf(ficpar,"backcast=%d starting-back-date=%lf/%lf/%lf final-back-date=%lf/%lf/%lf mobil_average=%d\n",&backcast,&jback1,&mback1,&anback1,&jback2,&mback2,&anback2,&mobilavproj);*/ |
if((num_filled=sscanf(line,"prevbackcast=%d starting-back-date=%lf/%lf/%lf final-back-date=%lf/%lf/%lf mobil_average=%d\n",&prevbcast,&jback1,&mback1,&anback1,&jback2,&mback2,&anback2,&mobilavproj)) !=EOF && (num_filled == 8)){ |
if((num_filled=sscanf(line,"backcast=%d starting-back-date=%lf/%lf/%lf final-back-date=%lf/%lf/%lf mobil_average=%d\n",&backcast,&jback1,&mback1,&anback1,&jback2,&mback2,&anback2,&mobilavproj)) !=EOF){ |
fprintf(ficparo,"prevbackcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevbcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
if (num_filled != 8) { |
printf("prevbackcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevbcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
printf("Error: Not 8 (data)parameters in line but %d, for example:backcast=1 starting-back-date=1/1/1990 final-back-date=1/1/1970 mobil_average=1\n, your line=%s . Probably you are running an older format.\n",num_filled,line); |
fprintf(ficlog,"prevbackcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevbcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:backcast=1 starting-back-date=1/1/1990 final-back-date=1/1/1970 mobil_average=1\n, your line=%s . Probably you are running an older format.\n",num_filled,line); |
fprintf(ficres,"prevbackcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",prevbcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
goto end; |
/* day and month of back2 are not used but only year anback2.*/ |
} |
|
printf("backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
|
fprintf(ficparo,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
|
fprintf(ficlog,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
|
fprintf(ficres,"backcast=%d starting-back-date=%.lf/%.lf/%.lf final-back-date=%.lf/%.lf/%.lf mobil_average=%d\n",backcast,jback1,mback1,anback1,jback2,mback2,anback2,mobilavproj); |
|
/* day and month of proj2 are not used but only year anproj2.*/ |
|
dateback1=anback1+(mback1-1)/12.+(jback1-1)/365.; |
dateback1=anback1+(mback1-1)/12.+(jback1-1)/365.; |
dateback2=anback2+(mback2-1)/12.+(jback2-1)/365.; |
dateback2=anback2+(mback2-1)/12.+(jback2-1)/365.; |
|
prvbackcast = 1; |
|
} |
|
else if((num_filled=sscanf(line,"prevbackcast=%d yearsbproj=%lf mobil_average=%d\n",&prevbcast,&yrbproj,&mobilavproj)) ==3){/* && (num_filled == 3))*/ |
|
printf("prevbackcast=%d yearsbproj=%lf mobil_average=%d\n",prevbcast,yrbproj,mobilavproj); |
|
fprintf(ficlog,"prevbackcast=%d yearsbproj=%lf mobil_average=%d\n",prevbcast,yrbproj,mobilavproj); |
|
fprintf(ficres,"prevbackcast=%d yearsbproj=%lf mobil_average=%d\n",prevbcast,yrbproj,mobilavproj); |
|
prvbackcast = 2; |
|
} |
|
else { |
|
printf("Error: Not 8 (data)parameters in line but %d, for example:prevbackcast=1 starting-back-date=1/1/1990 final-back-date=1/1/2000 mobil_average=0\nnor 3 (data)parameters, for example:prevbackcast=1 yearsbproj=10 mobil_average=0. Your line=%s . You are running probably an older format.\n, ",num_filled,line); |
|
fprintf(ficlog,"Error: Not 8 (data)parameters in line but %d, for example:prevbackcast=1 starting-back-date=1/1/1990 final-back-date=1/1/2000 mobil_average=0\nnor 3 (data)parameters, for example:prevbackcast=1 yearbproj=10 mobil_average=0. Your line=%s . You are running probably an older format.\n, ",num_filled,line); |
|
goto end; |
} |
} |
break; |
break; |
case 13: |
case 13: |
Line 12359 This is probably because your parameter
|
Line 12452 This is probably because your parameter
|
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpar); |
}else{ |
}else{ |
/* printinggnuplot(fileresu, optionfilefiname,ageminpar,agemaxpar,fage, prevfcast, backcast, pathc,p, (int)anproj1-(int)agemin, (int)anback1-(int)agemax+1); */ |
/* printinggnuplot(fileresu, optionfilefiname,ageminpar,agemaxpar,fage, prevfcast, backcast, pathc,p, (int)anproj1-(int)agemin, (int)anback1-(int)agemax+1); */ |
printinggnuplot(fileresu, optionfilefiname,ageminpar,agemaxpar,bage, fage, prevfcast, backcast, pathc,p, (int)anproj1-bage, (int)anback1-fage); |
/* It seems that anprojd which is computed from the mean year at interview which is known yet because of freqsummary */ |
|
/* date2dmy(dateintmean,&jintmean,&mintmean,&aintmean); */ /* Done in freqsummary */ |
|
if(prvforecast==1){ |
|
dateprojd=(jproj1+12*mproj1+365*anproj1)/365; |
|
jprojd=jproj1; |
|
mprojd=mproj1; |
|
anprojd=anproj1; |
|
dateprojf=(jproj2+12*mproj2+365*anproj2)/365; |
|
jprojf=jproj2; |
|
mprojf=mproj2; |
|
anprojf=anproj2; |
|
} else if(prvforecast == 2){ |
|
dateprojd=dateintmean; |
|
date2dmy(dateprojd,&jprojd, &mprojd, &anprojd); |
|
dateprojf=dateintmean+yrfproj; |
|
date2dmy(dateprojf,&jprojf, &mprojf, &anprojf); |
|
} |
|
if(prvbackcast==1){ |
|
datebackd=(jback1+12*mback1+365*anback1)/365; |
|
jbackd=jback1; |
|
mbackd=mback1; |
|
anbackd=anback1; |
|
datebackf=(jback2+12*mback2+365*anback2)/365; |
|
jbackf=jback2; |
|
mbackf=mback2; |
|
anbackf=anback2; |
|
} else if(prvbackcast == 2){ |
|
datebackd=dateintmean; |
|
date2dmy(datebackd,&jbackd, &mbackd, &anbackd); |
|
datebackf=dateintmean-yrbproj; |
|
date2dmy(datebackf,&jbackf, &mbackf, &anbackf); |
|
} |
|
|
|
printinggnuplot(fileresu, optionfilefiname,ageminpar,agemaxpar,bage, fage, prevfcast, prevbcast, pathc,p, (int)anprojd-bage, (int)anbackd-fage); |
} |
} |
printinghtml(fileresu,title,datafile, firstpass, lastpass, stepm, weightopt, \ |
printinghtml(fileresu,title,datafile, firstpass, lastpass, stepm, weightopt, \ |
model,imx,jmin,jmax,jmean,rfileres,popforecast,mobilav,prevfcast,mobilavproj,backcast, estepm, \ |
model,imx,jmin,jmax,jmean,rfileres,popforecast,mobilav,prevfcast,mobilavproj,prevbcast, estepm, \ |
jprev1,mprev1,anprev1,dateprev1, dateproj1, dateback1,jprev2,mprev2,anprev2,dateprev2,dateproj2, dateback2); |
jprev1,mprev1,anprev1,dateprev1, dateprojd, datebackd,jprev2,mprev2,anprev2,dateprev2,dateprojf, datebackf); |
|
|
/*------------ free_vector -------------*/ |
/*------------ free_vector -------------*/ |
/* chdir(path); */ |
/* chdir(path); */ |
Line 12436 Please run with mle=-1 to get a correct
|
Line 12562 Please run with mle=-1 to get a correct
|
}/* end if moving average */ |
}/* end if moving average */ |
|
|
/*---------- Forecasting ------------------*/ |
/*---------- Forecasting ------------------*/ |
if(prevfcast==1){ |
if(prevfcast==1){ |
/* if(stepm ==1){*/ |
/* /\* if(stepm ==1){*\/ */ |
prevforecast(fileresu, anproj1, mproj1, jproj1, agemin, agemax, dateprev1, dateprev2, mobilavproj, mobaverage, bage, fage, firstpass, lastpass, anproj2, p, cptcoveff); |
/* /\* anproj1, mproj1, jproj1 either read explicitly or yrfproj *\/ */ |
|
/*This done previously after freqsummary.*/ |
|
/* dateprojd=(jproj1+12*mproj1+365*anproj1)/365; */ |
|
/* dateprojf=(jproj2+12*mproj2+365*anproj2)/365; */ |
|
|
|
/* } else if (prvforecast==2){ */ |
|
/* /\* if(stepm ==1){*\/ */ |
|
/* /\* anproj1, mproj1, jproj1 either read explicitly or yrfproj *\/ */ |
|
/* } */ |
|
/*prevforecast(fileresu, dateintmean, anproj1, mproj1, jproj1, agemin, agemax, dateprev1, dateprev2, mobilavproj, mobaverage, bage, fage, firstpass, lastpass, anproj2, p, cptcoveff);*/ |
|
prevforecast(fileresu,dateintmean, dateprojd, dateprojf, agemin, agemax, dateprev1, dateprev2, mobilavproj, mobaverage, bage, fage, firstpass, lastpass, p, cptcoveff); |
} |
} |
|
|
/* Backcasting */ |
/* Prevbcasting */ |
if(backcast==1){ |
if(prevbcast==1){ |
ddnewms=matrix(1,nlstate+ndeath,1,nlstate+ndeath); |
ddnewms=matrix(1,nlstate+ndeath,1,nlstate+ndeath); |
ddoldms=matrix(1,nlstate+ndeath,1,nlstate+ndeath); |
ddoldms=matrix(1,nlstate+ndeath,1,nlstate+ndeath); |
ddsavms=matrix(1,nlstate+ndeath,1,nlstate+ndeath); |
ddsavms=matrix(1,nlstate+ndeath,1,nlstate+ndeath); |
Line 12457 Please run with mle=-1 to get a correct
|
Line 12593 Please run with mle=-1 to get a correct
|
hBijx(p, bage, fage, mobaverage); |
hBijx(p, bage, fage, mobaverage); |
fclose(ficrespijb); |
fclose(ficrespijb); |
|
|
prevbackforecast(fileresu, mobaverage, anback1, mback1, jback1, agemin, agemax, dateprev1, dateprev2, |
/* /\* prevbackforecast(fileresu, mobaverage, anback1, mback1, jback1, agemin, agemax, dateprev1, dateprev2, *\/ */ |
mobilavproj, bage, fage, firstpass, lastpass, anback2, p, cptcoveff); |
/* /\* mobilavproj, bage, fage, firstpass, lastpass, anback2, p, cptcoveff); *\/ */ |
|
/* prevbackforecast(fileresu, mobaverage, anback1, mback1, jback1, agemin, agemax, dateprev1, dateprev2, */ |
|
/* mobilavproj, bage, fage, firstpass, lastpass, anback2, p, cptcoveff); */ |
|
prevbackforecast(fileresu, mobaverage, dateintmean, dateprojd, dateprojf, agemin, agemax, dateprev1, dateprev2, |
|
mobilavproj, bage, fage, firstpass, lastpass, p, cptcoveff); |
|
|
|
|
varbprlim(fileresu, nresult, mobaverage, mobilavproj, bage, fage, bprlim, &ncvyear, ftolpl, p, matcov, delti, stepm, cptcoveff); |
varbprlim(fileresu, nresult, mobaverage, mobilavproj, bage, fage, bprlim, &ncvyear, ftolpl, p, matcov, delti, stepm, cptcoveff); |
|
|
|
|
Line 12466 Please run with mle=-1 to get a correct
|
Line 12608 Please run with mle=-1 to get a correct
|
free_matrix(ddnewms, 1, nlstate+ndeath, 1, nlstate+ndeath); |
free_matrix(ddnewms, 1, nlstate+ndeath, 1, nlstate+ndeath); |
free_matrix(ddsavms, 1, nlstate+ndeath, 1, nlstate+ndeath); |
free_matrix(ddsavms, 1, nlstate+ndeath, 1, nlstate+ndeath); |
free_matrix(ddoldms, 1, nlstate+ndeath, 1, nlstate+ndeath); |
free_matrix(ddoldms, 1, nlstate+ndeath, 1, nlstate+ndeath); |
} /* end Backcasting */ |
} /* end Prevbcasting */ |
|
|
|
|
/* ------ Other prevalence ratios------------ */ |
/* ------ Other prevalence ratios------------ */ |