version 1.162, 2014/09/25 11:43:39
|
version 1.167, 2014/12/22 13:50:56
|
Line 1
|
Line 1
|
/* $Id$ |
/* $Id$ |
$State$ |
$State$ |
$Log$ |
$Log$ |
|
Revision 1.167 2014/12/22 13:50:56 brouard |
|
Summary: Testing uname and compiler version and if compiled 32 or 64 |
|
|
|
Testing on Linux 64 |
|
|
|
Revision 1.166 2014/12/22 11:40:47 brouard |
|
*** empty log message *** |
|
|
|
Revision 1.165 2014/12/16 11:20:36 brouard |
|
Summary: After compiling on Visual C |
|
|
|
* imach.c (Module): Merging 1.61 to 1.162 |
|
|
|
Revision 1.164 2014/12/16 10:52:11 brouard |
|
Summary: Merging with Visual C after suppressing some warnings for unused variables. Also fixing Saito's bug 0.98Xn |
|
|
|
* imach.c (Module): Merging 1.61 to 1.162 |
|
|
|
Revision 1.163 2014/12/16 10:30:11 brouard |
|
* imach.c (Module): Merging 1.61 to 1.162 |
|
|
Revision 1.162 2014/09/25 11:43:39 brouard |
Revision 1.162 2014/09/25 11:43:39 brouard |
Summary: temporary backup 0.99! |
Summary: temporary backup 0.99! |
|
|
Line 489
|
Line 510
|
end |
end |
*/ |
*/ |
|
|
|
#define POWELL /* Instead of NLOPT */ |
|
|
|
|
|
|
#include <math.h> |
#include <math.h> |
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
Line 505
|
Line 525
|
|
|
#include <limits.h> |
#include <limits.h> |
#include <sys/types.h> |
#include <sys/types.h> |
|
#include <sys/utsname.h> |
#include <sys/stat.h> |
#include <sys/stat.h> |
#include <errno.h> |
#include <errno.h> |
/* extern int errno; */ |
/* extern int errno; */ |
Line 523
|
Line 544
|
#include <gsl/gsl_multimin.h> |
#include <gsl/gsl_multimin.h> |
#endif |
#endif |
|
|
|
|
#ifdef NLOPT |
#ifdef NLOPT |
#include <nlopt.h> |
#include <nlopt.h> |
typedef struct { |
typedef struct { |
Line 554 typedef struct {
|
Line 576 typedef struct {
|
#define YEARM 12. /**< Number of months per year */ |
#define YEARM 12. /**< Number of months per year */ |
#define AGESUP 130 |
#define AGESUP 130 |
#define AGEBASE 40 |
#define AGEBASE 40 |
#define AGEGOMP 10. /**< Minimal age for Gompertz adjustment */ |
#define AGEGOMP 10 /**< Minimal age for Gompertz adjustment */ |
#ifdef _WIN32 |
#ifdef _WIN32 |
#define DIRSEPARATOR '\\' |
#define DIRSEPARATOR '\\' |
#define CHARSEPARATOR "\\" |
#define CHARSEPARATOR "\\" |
Line 683 static double maxarg1,maxarg2;
|
Line 705 static double maxarg1,maxarg2;
|
|
|
#define SIGN(a,b) ((b)>0.0 ? fabs(a) : -fabs(a)) |
#define SIGN(a,b) ((b)>0.0 ? fabs(a) : -fabs(a)) |
#define rint(a) floor(a+0.5) |
#define rint(a) floor(a+0.5) |
|
/* http://www.thphys.uni-heidelberg.de/~robbers/cmbeasy/doc/html/myutils_8h-source.html */ |
|
/* #define mytinydouble 1.0e-16 */ |
|
/* #define DEQUAL(a,b) (fabs((a)-(b))<mytinydouble) */ |
|
/* http://www.thphys.uni-heidelberg.de/~robbers/cmbeasy/doc/html/mynrutils_8h-source.html */ |
|
/* static double dsqrarg; */ |
|
/* #define DSQR(a) (DEQUAL((dsqrarg=(a)),0.0) ? 0.0 : dsqrarg*dsqrarg) */ |
static double sqrarg; |
static double sqrarg; |
#define SQR(a) ((sqrarg=(a)) == 0.0 ? 0.0 :sqrarg*sqrarg) |
#define SQR(a) ((sqrarg=(a)) == 0.0 ? 0.0 :sqrarg*sqrarg) |
#define SWAP(a,b) {temp=(a);(a)=(b);(b)=temp;} |
#define SWAP(a,b) {temp=(a);(a)=(b);(b)=temp;} |
Line 1146 double brent(double ax, double bx, doubl
|
Line 1173 double brent(double ax, double bx, doubl
|
int iter; |
int iter; |
double a,b,d,etemp; |
double a,b,d,etemp; |
double fu=0,fv,fw,fx; |
double fu=0,fv,fw,fx; |
double ftemp; |
double ftemp=0.; |
double p,q,r,tol1,tol2,u,v,w,x,xm; |
double p,q,r,tol1,tol2,u,v,w,x,xm; |
double e=0.0; |
double e=0.0; |
|
|
Line 1238 void mnbrak(double *ax, double *bx, doub
|
Line 1265 void mnbrak(double *ax, double *bx, doub
|
ulim=(*bx)+GLIMIT*(*cx-*bx); /* Maximum abscisse where function can be evaluated */ |
ulim=(*bx)+GLIMIT*(*cx-*bx); /* Maximum abscisse where function can be evaluated */ |
if ((*bx-u)*(u-*cx) > 0.0) { /* if u between b and c */ |
if ((*bx-u)*(u-*cx) > 0.0) { /* if u between b and c */ |
fu=(*func)(u); |
fu=(*func)(u); |
|
#ifdef DEBUG |
|
/* f(x)=A(x-u)**2+f(u) */ |
|
double A, fparabu; |
|
A= (*fb - *fa)/(*bx-*ax)/(*bx+*ax-2*u); |
|
fparabu= *fa - A*(*ax-u)*(*ax-u); |
|
printf("mnbrak (*ax=%.12f, *fa=%.12lf), (*bx=%.12f, *fb=%.12lf), (*cx=%.12f, *fc=%.12lf), (*u=%.12f, fu=%.12lf, fparabu=%.12f)\n",*ax,*fa,*bx,*fb,*cx,*fc,u,fu, fparabu); |
|
fprintf(ficlog, "mnbrak (*ax=%.12f, *fa=%.12lf), (*bx=%.12f, *fb=%.12lf), (*cx=%.12f, *fc=%.12lf), (*u=%.12f, fu=%.12lf, fparabu=%.12f)\n",*ax,*fa,*bx,*fb,*cx,*fc,u,fu, fparabu); |
|
#endif |
} else if ((*cx-u)*(u-ulim) > 0.0) { /* u is after c but before ulim */ |
} else if ((*cx-u)*(u-ulim) > 0.0) { /* u is after c but before ulim */ |
fu=(*func)(u); |
fu=(*func)(u); |
if (fu < *fc) { |
if (fu < *fc) { |
Line 1372 void powell(double p[], double **xi, int
|
Line 1407 void powell(double p[], double **xi, int
|
for (j=1;j<=n;j++) xit[j]=xi[j][i]; |
for (j=1;j<=n;j++) xit[j]=xi[j][i]; |
fptt=(*fret); |
fptt=(*fret); |
#ifdef DEBUG |
#ifdef DEBUG |
printf("fret=%lf \n",*fret); |
printf("fret=%lf, %lf, %lf \n", *fret, *fret, *fret); |
fprintf(ficlog,"fret=%lf \n",*fret); |
fprintf(ficlog, "fret=%lf, %lf, %lf \n", *fret, *fret, *fret); |
#endif |
#endif |
printf("%d",i);fflush(stdout); |
printf("%d",i);fflush(stdout); |
fprintf(ficlog,"%d",i);fflush(ficlog); |
fprintf(ficlog,"%d",i);fflush(ficlog); |
Line 1470 void powell(double p[], double **xi, int
|
Line 1505 void powell(double p[], double **xi, int
|
fprintf(ficlog,"Gaining to use average direction of P0 P%d instead of biggest increase direction :\n",n,ibig); |
fprintf(ficlog,"Gaining to use average direction of P0 P%d instead of biggest increase direction :\n",n,ibig); |
|
|
#ifdef DEBUG |
#ifdef DEBUG |
|
printf("Direction changed last moved %d in place of ibig=%d, new last is the average:\n",n,ibig); |
|
fprintf(ficlog,"Direction changed last moved %d in place of ibig=%d, new last is the average:\n",n,ibig); |
for(j=1;j<=n;j++){ |
for(j=1;j<=n;j++){ |
printf(" %.12e",xit[j]); |
printf(" %.12e",xit[j]); |
fprintf(ficlog," %.12e",xit[j]); |
fprintf(ficlog," %.12e",xit[j]); |
Line 1566 double **pmij(double **ps, double *cov,
|
Line 1603 double **pmij(double **ps, double *cov,
|
*/ |
*/ |
double s1, lnpijopii; |
double s1, lnpijopii; |
/*double t34;*/ |
/*double t34;*/ |
int i,j,j1, nc, ii, jj; |
int i,j, nc, ii, jj; |
|
|
for(i=1; i<= nlstate; i++){ |
for(i=1; i<= nlstate; i++){ |
for(j=1; j<i;j++){ |
for(j=1; j<i;j++){ |
Line 2129 void likelione(FILE *ficres,double p[],
|
Line 2166 void likelione(FILE *ficres,double p[],
|
|
|
void mlikeli(FILE *ficres,double p[], int npar, int ncovmodel, int nlstate, double ftol, double (*func)(double [])) |
void mlikeli(FILE *ficres,double p[], int npar, int ncovmodel, int nlstate, double ftol, double (*func)(double [])) |
{ |
{ |
int i,j, iter; |
int i,j, iter=0; |
double **xi; |
double **xi; |
double fret; |
double fret; |
double fretone; /* Only one call to likelihood */ |
double fretone; /* Only one call to likelihood */ |
Line 2205 void hesscov(double **matcov, double p[]
|
Line 2242 void hesscov(double **matcov, double p[]
|
{ |
{ |
double **a,**y,*x,pd; |
double **a,**y,*x,pd; |
double **hess; |
double **hess; |
int i, j,jk; |
int i, j; |
int *indx; |
int *indx; |
|
|
double hessii(double p[], double delta, int theta, double delti[],double (*func)(double []),int npar); |
double hessii(double p[], double delta, int theta, double delti[],double (*func)(double []),int npar); |
Line 2339 double hessii(double x[], double delta,
|
Line 2376 double hessii(double x[], double delta,
|
k=kmax; |
k=kmax; |
} |
} |
else if((k1 >khi/nkhif) || (k2 >khi/nkhif)){ /* Keeps lastvalue before 3.84/2 KHI2 5% 1d.f. */ |
else if((k1 >khi/nkhif) || (k2 >khi/nkhif)){ /* Keeps lastvalue before 3.84/2 KHI2 5% 1d.f. */ |
k=kmax; l=lmax*10.; |
k=kmax; l=lmax*10; |
} |
} |
else if((k1 >khi/nkhi) || (k2 >khi/nkhi)){ |
else if((k1 >khi/nkhi) || (k2 >khi/nkhi)){ |
delts=delt; |
delts=delt; |
Line 2354 double hessii(double x[], double delta,
|
Line 2391 double hessii(double x[], double delta,
|
double hessij( double x[], double delti[], int thetai,int thetaj,double (*func)(double []),int npar) |
double hessij( double x[], double delti[], int thetai,int thetaj,double (*func)(double []),int npar) |
{ |
{ |
int i; |
int i; |
int l=1, l1, lmax=20; |
int l=1, lmax=20; |
double k1,k2,k3,k4,res,fx; |
double k1,k2,k3,k4,res,fx; |
double p2[MAXPARM+1]; |
double p2[MAXPARM+1]; |
int k; |
int k; |
Line 2469 void pstamp(FILE *fichier)
|
Line 2506 void pstamp(FILE *fichier)
|
void freqsummary(char fileres[], int iagemin, int iagemax, int **s, double **agev, int nlstate, int imx, int *Tvaraff, int **nbcode, int *ncodemax,double **mint,double **anint, char strstart[]) |
void freqsummary(char fileres[], int iagemin, int iagemax, int **s, double **agev, int nlstate, int imx, int *Tvaraff, int **nbcode, int *ncodemax,double **mint,double **anint, char strstart[]) |
{ /* Some frequencies */ |
{ /* Some frequencies */ |
|
|
int i, m, jk, k1,i1, j1, bool, z1,j; |
int i, m, jk, j1, bool, z1,j; |
int first; |
int first; |
double ***freq; /* Frequencies */ |
double ***freq; /* Frequencies */ |
double *pp, **prop; |
double *pp, **prop; |
Line 2650 void prevalence(double ***probs, double
|
Line 2687 void prevalence(double ***probs, double
|
We still use firstpass and lastpass as another selection. |
We still use firstpass and lastpass as another selection. |
*/ |
*/ |
|
|
int i, m, jk, k1, i1, j1, bool, z1,j; |
int i, m, jk, j1, bool, z1,j; |
double ***freq; /* Frequencies */ |
|
double *pp, **prop; |
double **prop; |
double pos,posprop; |
double posprop; |
double y2; /* in fractional years */ |
double y2; /* in fractional years */ |
int iagemin, iagemax; |
int iagemin, iagemax; |
int first; /** to stop verbosity which is redirected to log file */ |
int first; /** to stop verbosity which is redirected to log file */ |
Line 2744 void concatwav(int wav[], int **dh, int
|
Line 2781 void concatwav(int wav[], int **dh, int
|
int j, k=0,jk, ju, jl; |
int j, k=0,jk, ju, jl; |
double sum=0.; |
double sum=0.; |
first=0; |
first=0; |
jmin=1e+5; |
jmin=100000; |
jmax=-1; |
jmax=-1; |
jmean=0.; |
jmean=0.; |
for(i=1; i<=imx; i++){ |
for(i=1; i<=imx; i++){ |
Line 2984 void evsij(double ***eij, double x[], in
|
Line 3021 void evsij(double ***eij, double x[], in
|
|
|
{ |
{ |
/* Health expectancies, no variances */ |
/* Health expectancies, no variances */ |
int i, j, nhstepm, hstepm, h, nstepm, k, cptj, cptj2, i2, j2; |
int i, j, nhstepm, hstepm, h, nstepm; |
int nhstepma, nstepma; /* Decreasing with age */ |
int nhstepma, nstepma; /* Decreasing with age */ |
double age, agelim, hf; |
double age, agelim, hf; |
double ***p3mat; |
double ***p3mat; |
Line 3306 void varevsij(char optionfilefiname[], d
|
Line 3343 void varevsij(char optionfilefiname[], d
|
double **dnewm,**doldm; |
double **dnewm,**doldm; |
double **dnewmp,**doldmp; |
double **dnewmp,**doldmp; |
int i, j, nhstepm, hstepm, h, nstepm ; |
int i, j, nhstepm, hstepm, h, nstepm ; |
int k, cptcode; |
int k; |
double *xp; |
double *xp; |
double **gp, **gm; /* for var eij */ |
double **gp, **gm; /* for var eij */ |
double ***gradg, ***trgradg; /*for var eij */ |
double ***gradg, ***trgradg; /*for var eij */ |
Line 3606 void varprevlim(char fileres[], double *
|
Line 3643 void varprevlim(char fileres[], double *
|
{ |
{ |
/* Variance of prevalence limit */ |
/* Variance of prevalence limit */ |
/* double **prevalim(double **prlim, int nlstate, double *xp, double age, double **oldm, double **savm,double ftolpl);*/ |
/* double **prevalim(double **prlim, int nlstate, double *xp, double age, double **oldm, double **savm,double ftolpl);*/ |
double **newm; |
|
double **dnewm,**doldm; |
double **dnewm,**doldm; |
int i, j, nhstepm, hstepm; |
int i, j, nhstepm, hstepm; |
int k, cptcode; |
|
double *xp; |
double *xp; |
double *gp, *gm; |
double *gp, *gm; |
double **gradg, **trgradg; |
double **gradg, **trgradg; |
Line 3688 void varprevlim(char fileres[], double *
|
Line 3724 void varprevlim(char fileres[], double *
|
/************ Variance of one-step probabilities ******************/ |
/************ Variance of one-step probabilities ******************/ |
void varprob(char optionfilefiname[], double **matcov, double x[], double delti[], int nlstate, double bage, double fage, int ij, int *Tvar, int **nbcode, int *ncodemax, char strstart[]) |
void varprob(char optionfilefiname[], double **matcov, double x[], double delti[], int nlstate, double bage, double fage, int ij, int *Tvar, int **nbcode, int *ncodemax, char strstart[]) |
{ |
{ |
int i, j=0, i1, k1, l1, t, tj; |
int i, j=0, k1, l1, tj; |
int k2, l2, j1, z1; |
int k2, l2, j1, z1; |
int k=0,l, cptcode; |
int k=0, l; |
int first=1, first1, first2; |
int first=1, first1, first2; |
double cv12, mu1, mu2, lc1, lc2, v12, v21, v11, v22,v1,v2, c12, tnalp; |
double cv12, mu1, mu2, lc1, lc2, v12, v21, v11, v22,v1,v2, c12, tnalp; |
double **dnewm,**doldm; |
double **dnewm,**doldm; |
Line 3698 void varprob(char optionfilefiname[], do
|
Line 3734 void varprob(char optionfilefiname[], do
|
double *gp, *gm; |
double *gp, *gm; |
double **gradg, **trgradg; |
double **gradg, **trgradg; |
double **mu; |
double **mu; |
double age,agelim, cov[NCOVMAX+1]; |
double age, cov[NCOVMAX+1]; |
double std=2.0; /* Number of standard deviation wide of confidence ellipsoids */ |
double std=2.0; /* Number of standard deviation wide of confidence ellipsoids */ |
int theta; |
int theta; |
char fileresprob[FILENAMELENGTH]; |
char fileresprob[FILENAMELENGTH]; |
Line 4070 fprintf(fichtm," \n<ul><li><b>Graphs</b>
|
Line 4106 fprintf(fichtm," \n<ul><li><b>Graphs</b>
|
<img src=\"%s%d_2.png\">",stepm,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1); |
<img src=\"%s%d_2.png\">",stepm,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1); |
/* Period (stable) prevalence in each health state */ |
/* Period (stable) prevalence in each health state */ |
for(cpt=1; cpt<=nlstate;cpt++){ |
for(cpt=1; cpt<=nlstate;cpt++){ |
fprintf(fichtm,"<br>- Convergence from each state (1 to %d) to period (stable) prevalence in state %d <a href=\"%s%d_%d.png\">%s%d_%d.png</a><br> \ |
fprintf(fichtm,"<br>- Convergence to period (stable) prevalence in state %d. Or probability to be in state %d being in state (1 to %d) at different ages. <a href=\"%s%d_%d.png\">%s%d_%d.png</a><br> \ |
<img src=\"%s%d_%d.png\">",nlstate, cpt, subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1); |
<img src=\"%s%d_%d.png\">", cpt, cpt, nlstate, subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1); |
} |
} |
for(cpt=1; cpt<=nlstate;cpt++) { |
for(cpt=1; cpt<=nlstate;cpt++) { |
fprintf(fichtm,"\n<br>- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies in each alive state (1 to %d) : <a href=\"%s%d%d.png\">%s%d%d.png</a> <br> \ |
fprintf(fichtm,"\n<br>- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies in each alive state (1 to %d) : <a href=\"%s%d%d.png\">%s%d%d.png</a> <br> \ |
Line 4156 true period expectancies (those weighted
|
Line 4192 true period expectancies (those weighted
|
void printinggnuplot(char fileres[], char optionfilefiname[], double ageminpar, double agemaxpar, double fage , char pathc[], double p[]){ |
void printinggnuplot(char fileres[], char optionfilefiname[], double ageminpar, double agemaxpar, double fage , char pathc[], double p[]){ |
|
|
char dirfileres[132],optfileres[132]; |
char dirfileres[132],optfileres[132]; |
int m0,cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,ij=0,l=0; |
int cpt=0,k1=0,i=0,k=0,j=0,jk=0,k2=0,k3=0,ij=0,l=0; |
int ng=0; |
int ng=0; |
/* if((ficgp=fopen(optionfilegnuplot,"a"))==NULL) { */ |
/* if((ficgp=fopen(optionfilegnuplot,"a"))==NULL) { */ |
/* printf("Problem with file %s",optionfilegnuplot); */ |
/* printf("Problem with file %s",optionfilegnuplot); */ |
Line 4342 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
Line 4378 plot [%.f:%.f] ", ageminpar, agemaxpar)
|
} /* end k2 */ |
} /* end k2 */ |
} /* end jk */ |
} /* end jk */ |
} /* end ng */ |
} /* end ng */ |
avoid: |
/* avoid: */ |
fflush(ficgp); |
fflush(ficgp); |
} /* end gnuplot */ |
} /* end gnuplot */ |
|
|
Line 4396 prevforecast(char fileres[], double anpr
|
Line 4432 prevforecast(char fileres[], double anpr
|
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). |
anproj2 year of en of projection (same day and month as proj1). |
*/ |
*/ |
int yearp, stepsize, hstepm, nhstepm, j, k, c, cptcod, i, h, i1; |
int yearp, stepsize, hstepm, nhstepm, j, k, cptcod, i, h, i1; |
int *popage; |
|
double agec; /* generic age */ |
double agec; /* generic age */ |
double agelim, ppij, yp,yp1,yp2,jprojmean,mprojmean,anprojmean; |
double agelim, ppij, yp,yp1,yp2,jprojmean,mprojmean,anprojmean; |
double *popeffectif,*popcount; |
double *popeffectif,*popcount; |
Line 4691 void prwizard(int ncovmodel, int nlstate
|
Line 4726 void prwizard(int ncovmodel, int nlstate
|
|
|
/* Wizard to print covariance matrix template */ |
/* Wizard to print covariance matrix template */ |
|
|
char ca[32], cb[32], cc[32]; |
char ca[32], cb[32]; |
int i,j, k, l, li, lj, lk, ll, jj, npar, itimes; |
int i,j, k, li, lj, lk, ll, jj, npar, itimes; |
int numlinepar; |
int numlinepar; |
|
|
printf("# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
printf("# Parameters nlstate*nlstate*ncov a12*1 + b12 * age + ...\n"); |
Line 4913 fprintf(fichtm,"<ul><li><h4>Life table</
|
Line 4948 fprintf(fichtm,"<ul><li><h4>Life table</
|
void printinggnuplotmort(char fileres[], char optionfilefiname[], double ageminpar, double agemaxpar, double fage , char pathc[], double p[]){ |
void printinggnuplotmort(char fileres[], char optionfilefiname[], double ageminpar, double agemaxpar, double fage , char pathc[], double p[]){ |
|
|
char dirfileres[132],optfileres[132]; |
char dirfileres[132],optfileres[132]; |
int m,cpt,k1,i,k,j,jk,k2,k3,ij,l; |
|
int ng; |
int ng; |
|
|
|
|
Line 4938 int readdata(char datafile[], int firsto
|
Line 4973 int readdata(char datafile[], int firsto
|
/*-------- data file ----------*/ |
/*-------- data file ----------*/ |
FILE *fic; |
FILE *fic; |
char dummy[]=" "; |
char dummy[]=" "; |
int i, j, n; |
int i=0, j=0, n=0; |
int linei, month, year,iout; |
int linei, month, year,iout; |
char line[MAXLINE], linetmp[MAXLINE]; |
char line[MAXLINE], linetmp[MAXLINE]; |
char stra[80], strb[80]; |
char stra[MAXLINE], strb[MAXLINE]; |
char *stratrunc; |
char *stratrunc; |
int lstra; |
int lstra; |
|
|
Line 4969 int readdata(char datafile[], int firsto
|
Line 5004 int readdata(char datafile[], int firsto
|
continue; |
continue; |
} |
} |
trimbb(linetmp,line); /* Trims multiple blanks in line */ |
trimbb(linetmp,line); /* Trims multiple blanks in line */ |
for (j=0; line[j]!='\0';j++){ |
strcpy(line, linetmp); |
line[j]=linetmp[j]; |
|
} |
|
|
|
|
|
for (j=maxwav;j>=1;j--){ |
for (j=maxwav;j>=1;j--){ |
Line 5110 int readdata(char datafile[], int firsto
|
Line 5143 int readdata(char datafile[], int firsto
|
fclose(fic); |
fclose(fic); |
|
|
return (0); |
return (0); |
endread: |
/* endread: */ |
printf("Exiting readdata: "); |
printf("Exiting readdata: "); |
fclose(fic); |
fclose(fic); |
return (1); |
return (1); |
Line 5141 int decodemodel ( char model[], int last
|
Line 5174 int decodemodel ( char model[], int last
|
*/ |
*/ |
{ |
{ |
int i, j, k, ks; |
int i, j, k, ks; |
int i1, j1, k1, k2; |
int j1, k1, k2; |
char modelsav[80]; |
char modelsav[80]; |
char stra[80], strb[80], strc[80], strd[80],stre[80]; |
char stra[80], strb[80], strc[80], strd[80],stre[80]; |
|
|
Line 5290 int decodemodel ( char model[], int last
|
Line 5323 int decodemodel ( char model[], int last
|
|
|
|
|
return (0); /* with covar[new additional covariate if product] and Tage if age */ |
return (0); /* with covar[new additional covariate if product] and Tage if age */ |
endread: |
/*endread:*/ |
printf("Exiting decodemodel: "); |
printf("Exiting decodemodel: "); |
return (1); |
return (1); |
} |
} |
Line 5387 calandcheckages(int imx, int maxwav, dou
|
Line 5420 calandcheckages(int imx, int maxwav, dou
|
fprintf(ficlog,"Total number of individuals= %d, Agemin = %.2f, Agemax= %.2f\n\n", imx, *agemin, *agemax); |
fprintf(ficlog,"Total number of individuals= %d, Agemin = %.2f, Agemax= %.2f\n\n", imx, *agemin, *agemax); |
|
|
return (0); |
return (0); |
endread: |
/* endread:*/ |
printf("Exiting calandcheckages: "); |
printf("Exiting calandcheckages: "); |
return (1); |
return (1); |
} |
} |
|
|
|
syscompilerinfo() |
|
{ |
|
/* #include "syscompilerinfo.h"*/ |
|
#include <gnu/libc-version.h> |
|
#if defined(__GNUC__) |
|
# if defined(__GNUC_PATCHLEVEL__) |
|
# define __GNUC_VERSION__ (__GNUC__ * 10000 \ |
|
+ __GNUC_MINOR__ * 100 \ |
|
+ __GNUC_PATCHLEVEL__) |
|
# else |
|
# define __GNUC_VERSION__ (__GNUC__ * 10000 \ |
|
+ __GNUC_MINOR__ * 100) |
|
# endif |
|
#endif |
|
|
|
// http://stackoverflow.com/questions/4605842/how-to-identify-platform-compiler-from-preprocessor-macros |
|
#ifdef _WIN32 // note the underscore: without it, it's not msdn official! |
|
// Windows (x64 and x86) |
|
#elif __unix__ // all unices, not all compilers |
|
// Unix |
|
#elif __linux__ |
|
// linux |
|
#elif __APPLE__ |
|
// Mac OS, not sure if this is covered by __posix__ and/or __unix__ though... |
|
#endif |
|
|
|
/* __MINGW32__ */ |
|
/* __CYGWIN__ */ |
|
/* __MINGW64__ */ |
|
// http://msdn.microsoft.com/en-us/library/b0084kay.aspx |
|
/* _MSC_VER //the Visual C++ compiler is 17.00.51106.1, the _MSC_VER macro evaluates to 1700. Type cl /? */ |
|
/* _MSC_FULL_VER //the Visual C++ compiler is 15.00.20706.01, the _MSC_FULL_VER macro evaluates to 150020706 */ |
|
/* _WIN64 // Defined for applications for Win64. */ |
|
/* _M_X64 // Defined for compilations that target x64 processors. */ |
|
/* _DEBUG // Defined when you compile with /LDd, /MDd, and /MTd. */ |
|
#include <stdint.h> |
|
#if UINTPTR_MAX == 0xffffffff |
|
printf("32-bit \n"); /* 32-bit */ |
|
#elif UINTPTR_MAX == 0xffffffffffffffff |
|
printf("64-bit \n");/* 64-bit */ |
|
#else |
|
printf("wtf-bit \n"); /* wtf */ |
|
#endif |
|
|
|
struct utsname sysInfo; |
|
|
|
if (uname(&sysInfo) != -1) { |
|
puts(sysInfo.sysname); |
|
puts(sysInfo.nodename); |
|
puts(sysInfo.release); |
|
puts(sysInfo.version); |
|
puts(sysInfo.machine); |
|
} |
|
else |
|
perror("uname() error"); |
|
printf("GNU C version %d\n", __GNUC_VERSION__); |
|
printf("GNU libc version: %s\n", gnu_get_libc_version()); |
|
|
|
} |
|
|
/***********************************************/ |
/***********************************************/ |
/**************** Main Program *****************/ |
/**************** Main Program *****************/ |
Line 5407 int main(int argc, char *argv[])
|
Line 5499 int main(int argc, char *argv[])
|
double ssval; |
double ssval; |
#endif |
#endif |
int movingaverage(double ***probs, double bage,double fage, double ***mobaverage, int mobilav); |
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 i,j, k, n=MAXN,iter=0,m,size=100, cptcod; |
int linei, month, year,iout; |
|
int jj, ll, li, lj, lk, imk; |
int jj, ll, li, lj, lk; |
int numlinepar=0; /* Current linenumber of parameter file */ |
int numlinepar=0; /* Current linenumber of parameter file */ |
int itimes; |
int itimes; |
int NDIM=2; |
int NDIM=2; |
int vpopbased=0; |
int vpopbased=0; |
|
|
char ca[32], cb[32], cc[32]; |
char ca[32], cb[32]; |
/* FILE *fichtm; *//* Html File */ |
/* FILE *fichtm; *//* Html File */ |
/* FILE *ficgp;*/ /*Gnuplot File */ |
/* FILE *ficgp;*/ /*Gnuplot File */ |
struct stat info; |
struct stat info; |
double agedeb, agefin,hf; |
double agedeb; |
double ageminpar=1.e20,agemin=1.e20, agemaxpar=-1.e20, agemax=-1.e20; |
double ageminpar=1.e20,agemin=1.e20, agemaxpar=-1.e20, agemax=-1.e20; |
|
|
double fret; |
double fret; |
double **xi,tmp,delta; |
|
|
|
double dum; /* Dummy variable */ |
double dum; /* Dummy variable */ |
double ***p3mat; |
double ***p3mat; |
double ***mobaverage; |
double ***mobaverage; |
int *indx; |
|
char line[MAXLINE], linepar[MAXLINE]; |
char line[MAXLINE]; |
char path[MAXLINE],pathc[MAXLINE],pathcd[MAXLINE],pathtot[MAXLINE],model[MAXLINE]; |
char path[MAXLINE],pathc[MAXLINE],pathcd[MAXLINE],pathtot[MAXLINE],model[MAXLINE]; |
char pathr[MAXLINE], pathimach[MAXLINE]; |
char pathr[MAXLINE], pathimach[MAXLINE]; |
char **bp, *tok, *val; /* pathtot */ |
char *tok, *val; /* pathtot */ |
int firstobs=1, lastobs=10; |
int firstobs=1, lastobs=10; |
int sdeb, sfin; /* Status at beginning and end */ |
int c, h , cpt; |
int c, h , cpt,l; |
int jl; |
int ju,jl, mi; |
int i1, j1, jk, stepsize; |
int i1,j1, jk,aa,bb, stepsize, ij; |
int *tab; |
int jnais,jdc,jint4,jint1,jint2,jint3,*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 mobilav=0,popforecast=0; |
int mobilav=0,popforecast=0; |
int hstepm, nhstepm; |
int hstepm, nhstepm; |
Line 5447 int main(int argc, char *argv[])
|
Line 5536 int main(int argc, char *argv[])
|
double jprev1=1, mprev1=1,anprev1=2000,jprev2=1, mprev2=1,anprev2=2000; |
double jprev1=1, mprev1=1,anprev1=2000,jprev2=1, mprev2=1,anprev2=2000; |
double jpyram=1, mpyram=1,anpyram=2000,jpyram1=1, mpyram1=1,anpyram1=2000; |
double jpyram=1, mpyram=1,anpyram=2000,jpyram1=1, mpyram1=1,anpyram1=2000; |
|
|
double bage, fage, age, agelim, agebase; |
double bage=0, fage=110, age, agelim, agebase; |
double ftolpl=FTOL; |
double ftolpl=FTOL; |
double **prlim; |
double **prlim; |
double ***param; /* Matrix of parameters */ |
double ***param; /* Matrix of parameters */ |
Line 5458 int main(int argc, char *argv[])
|
Line 5547 int main(int argc, char *argv[])
|
double ***eij, ***vareij; |
double ***eij, ***vareij; |
double **varpl; /* Variances of prevalence limits by age */ |
double **varpl; /* Variances of prevalence limits by age */ |
double *epj, vepp; |
double *epj, vepp; |
double kk1, kk2; |
|
double dateprev1, dateprev2,jproj1=1,mproj1=1,anproj1=2000,jproj2=1,mproj2=1,anproj2=2000; |
double dateprev1, dateprev2,jproj1=1,mproj1=1,anproj1=2000,jproj2=1,mproj2=1,anproj2=2000; |
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"; |
int *dcwave; |
int *dcwave; |
|
|
char z[1]="c", occ; |
char z[1]="c"; |
|
|
/*char *strt;*/ |
/*char *strt;*/ |
char strtend[80]; |
char strtend[80]; |
|
|
long total_usecs; |
|
|
|
/* setlocale (LC_ALL, ""); */ |
/* setlocale (LC_ALL, ""); */ |
/* bindtextdomain (PACKAGE, LOCALEDIR); */ |
/* bindtextdomain (PACKAGE, LOCALEDIR); */ |
/* textdomain (PACKAGE); */ |
/* textdomain (PACKAGE); */ |
Line 5573 int main(int argc, char *argv[])
|
Line 5661 int main(int argc, char *argv[])
|
optionfilext=%s\n\ |
optionfilext=%s\n\ |
optionfilefiname='%s'\n",pathimach,pathtot,path,optionfile,optionfilext,optionfilefiname); |
optionfilefiname='%s'\n",pathimach,pathtot,path,optionfile,optionfilext,optionfilefiname); |
|
|
|
syscompilerinfo(); |
|
|
printf("Local time (at start):%s",strstart); |
printf("Local time (at start):%s",strstart); |
fprintf(ficlog,"Local time (at start): %s",strstart); |
fprintf(ficlog,"Local time (at start): %s",strstart); |
fflush(ficlog); |
fflush(ficlog); |
Line 5741 run imach with mle=-1 to get a correct t
|
Line 5831 run imach with mle=-1 to get a correct t
|
for(i=1; i <=nlstate; i++){ |
for(i=1; i <=nlstate; i++){ |
for(j=1; j <=nlstate+ndeath-1; j++){ |
for(j=1; j <=nlstate+ndeath-1; j++){ |
fscanf(ficpar,"%1d%1d",&i1,&j1); |
fscanf(ficpar,"%1d%1d",&i1,&j1); |
if ((i1-i)*(j1-j)!=0){ |
if ( (i1-i) * (j1-j) != 0){ |
printf("Error in line parameters number %d, %1d%1d instead of %1d%1d \n",numlinepar, i,j, i1, j1); |
printf("Error in line parameters number %d, %1d%1d instead of %1d%1d \n",numlinepar, i,j, i1, j1); |
exit(1); |
exit(1); |
} |
} |
Line 6776 Interval (in months) between two waves:
|
Line 6866 Interval (in months) between two waves:
|
if (mobilav!=0) free_ma3x(mobaverage,1, AGESUP,1,NCOVMAX, 1,NCOVMAX); |
if (mobilav!=0) free_ma3x(mobaverage,1, AGESUP,1,NCOVMAX, 1,NCOVMAX); |
free_ma3x(probs,1,AGESUP,1,NCOVMAX, 1,NCOVMAX); |
free_ma3x(probs,1,AGESUP,1,NCOVMAX, 1,NCOVMAX); |
} /* mle==-3 arrives here for freeing */ |
} /* mle==-3 arrives here for freeing */ |
endfree: |
/* endfree:*/ |
free_matrix(prlim,1,nlstate,1,nlstate); /*here or after loop ? */ |
free_matrix(prlim,1,nlstate,1,nlstate); /*here or after loop ? */ |
free_matrix(pmmij,1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(pmmij,1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(oldms, 1,nlstate+ndeath,1,nlstate+ndeath); |
free_matrix(oldms, 1,nlstate+ndeath,1,nlstate+ndeath); |