From 68638c057b2f83c22664abd58c1e4fa7c04f69b0 Mon Sep 17 00:00:00 2001 From: "N. Brouard" Date: Fri, 26 Aug 2016 09:20:19 +0000 Subject: [PATCH] Summary: to valgrind --- src/imach.c | 181 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 143 insertions(+), 38 deletions(-) diff --git a/src/imach.c b/src/imach.c index 5636832..adb3ba5 100644 --- a/src/imach.c +++ b/src/imach.c @@ -1,6 +1,9 @@ /* $Id$ $State$ $Log$ + Revision 1.236 2016/08/25 10:50:18 brouard + *** empty log message *** + Revision 1.235 2016/08/25 06:59:23 brouard *** empty log message *** @@ -1111,9 +1114,11 @@ int *TvarsQind; #define MAXRESULTLINES 10 int nresult=0; int TKresult[MAXRESULTLINES]; -double Tresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ +int Tresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ +int Tinvresult[MAXRESULTLINES][NCOVMAX];/* For dummy variable , value (output) */ int Tvresult[MAXRESULTLINES][NCOVMAX]; /* For dummy variable , variable # (output) */ double Tqresult[MAXRESULTLINES][NCOVMAX]; /* For quantitative variable , value (output) */ +double Tqinvresult[MAXRESULTLINES][NCOVMAX]; /* For quantitative variable , value (output) */ int Tvqresult[MAXRESULTLINES][NCOVMAX]; /* For quantitative variable , variable # (output) */ /* int *TDvar; /\**< TDvar[1]=4, TDvarF[2]=3, TDvar[3]=6 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 *\/ */ @@ -2407,7 +2412,7 @@ void powell(double p[], double **xi, int n, double ftol, int *iter, double *fret cov[2+nagesqr+TvarsQind[k]]=Tqresult[nres][k]; /* printf("prevalim Quantitative k=%d TvarsQind[%d]=%d, TvarsQ[%d]=V%d,Tqresult[%d][%d]=%f\n",k,k,TvarsQind[k],k,TvarsQ[k],nres,k,Tqresult[nres][k]); */ } - for (k=1; k<=cptcovage;k++){ + for (k=1; k<=cptcovage;k++){ /* For product with age */ if(Dummy[Tvar[Tage[k]]]){ cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; } else{ @@ -2415,9 +2420,21 @@ void powell(double p[], double **xi, int n, double ftol, int *iter, double *fret } /* printf("prevalim Age combi=%d k=%d Tage[%d]=V%d Tqresult[%d][%d]=%f\n",ij,k,k,Tage[k],nres,k,Tqresult[nres][k]); */ } - for (k=1; k<=cptcovprod;k++){ /* */ + for (k=1; k<=cptcovprod;k++){ /* For product without age */ /* printf("prevalim Prod ij=%d k=%d Tprod[%d]=%d Tvard[%d][1]=V%d, Tvard[%d][2]=V%d\n",ij,k,k,Tprod[k], k,Tvard[k][1], k,Tvard[k][2]); */ - cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)] * nbcode[Tvard[k][2]][codtabm(ij,k)]; + if(Dummy[Tvard[k][1]==0]){ + if(Dummy[Tvard[k][2]==0]){ + cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)] * nbcode[Tvard[k][2]][codtabm(ij,k)]; + }else{ + cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)] * Tqresult[nres][k]; + } + }else{ + if(Dummy[Tvard[k][2]==0]){ + cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][2]][codtabm(ij,k)] * Tqinvresult[nres][Tvard[k][1]]; + }else{ + cov[2+nagesqr+Tprod[k]]=Tqinvresult[nres][Tvard[k][1]]* Tqinvresult[nres][Tvard[k][2]]; + } + } } /*printf("ij=%d cptcovprod=%d tvar=%d ", ij, cptcovprod, Tvar[1]);*/ /*printf("ij=%d cov[3]=%lf cov[4]=%lf \n",ij, cov[3],cov[4]);*/ @@ -4084,7 +4101,7 @@ void freqsummary(char fileres[], int iagemin, int iagemax, int **s, double **ag Title=%s
Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s
\n",\ fileresphtm,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model); } - fprintf(ficresphtm,"Current page is file %s
\n\n

Frequencies and prevalence by age at begin of transition

\n",fileresphtm, fileresphtm); + fprintf(ficresphtm,"Current page is file %s
\n\n

Frequencies and prevalence by age at begin of transition and dummy covariate value at beginning of transition

\n",fileresphtm, fileresphtm); strcpy(fileresphtmfr,subdirfext(optionfilefiname,"PHTMFR_",".htm")); if((ficresphtmfr=fopen(fileresphtmfr,"w"))==NULL) { @@ -5983,11 +6000,13 @@ void printinghtml(char fileresu[], char title[], char datafile[], int firstpass, int popforecast, int prevfcast, int backcast, int estepm , \ double jprev1, double mprev1,double anprev1, double dateprev1, \ double jprev2, double mprev2,double anprev2, double dateprev2){ - int jj1, k1, i1, cpt; + int jj1, k1, i1, cpt, k4, nres; fprintf(fichtm,""); + fprintf(fichtm,"", model); fprintf(fichtm,"