version 1.333, 2022/08/21 09:10:30
|
version 1.334, 2022/08/25 09:08:41
|
Line 1
|
Line 1
|
/* $Id$ |
/* $Id$ |
$State$ |
$State$ |
$Log$ |
$Log$ |
|
Revision 1.334 2022/08/25 09:08:41 brouard |
|
Summary: In progress for quantitative |
|
|
Revision 1.333 2022/08/21 09:10:30 brouard |
Revision 1.333 2022/08/21 09:10:30 brouard |
* src/imach.c (Module): Version 0.99r33 A lot of changes in |
* src/imach.c (Module): Version 0.99r33 A lot of changes in |
reassigning covariates: my first idea was that people will always |
reassigning covariates: my first idea was that people will always |
Line 1296 int cptcovs=0; /**< cptcovs number of si
|
Line 1299 int cptcovs=0; /**< cptcovs number of si
|
int cptcovsnq=0; /**< cptcovsnq number of simple covariates in the model but non quantitative V2+V1 =2 */ |
int cptcovsnq=0; /**< cptcovsnq number of simple covariates in the model but non quantitative V2+V1 =2 */ |
int cptcovage=0; /**< Number of covariates with age: V3*age only =1 */ |
int cptcovage=0; /**< Number of covariates with age: V3*age only =1 */ |
int cptcovprodnoage=0; /**< Number of covariate products without age */ |
int cptcovprodnoage=0; /**< Number of covariate products without age */ |
int cptcoveff=0; /* Total number of covariates to vary for printing results (2**cptcoveff combinations of dummies)(computed in tricode as cptcov) */ |
int cptcoveff=0; /* Total number of single dummy covariates to vary for printing results (2**cptcoveff combinations of dummies)(computed in tricode as cptcov) */ |
int ncovf=0; /* Total number of effective fixed covariates (dummy or quantitative) in the model */ |
int ncovf=0; /* Total number of effective fixed covariates (dummy or quantitative) in the model */ |
int ncovv=0; /* Total number of effective (wave) varying covariates (dummy or quantitative) in the model */ |
int ncovv=0; /* Total number of effective (wave) varying covariates (dummy or quantitative) in the model */ |
int ncova=0; /* Total number of effective (wave and stepm) varying with age covariates (dummy of quantitative) in the model */ |
int ncova=0; /* Total number of effective (wave and stepm) varying with age covariates (dummy of quantitative) in the model */ |
Line 1307 int nqfveff=0; /**< nqfveff Number of Qu
|
Line 1310 int nqfveff=0; /**< nqfveff Number of Qu
|
int ntveff=0; /**< ntveff number of effective time varying variables */ |
int ntveff=0; /**< ntveff number of effective time varying variables */ |
int nqtveff=0; /**< ntqveff number of effective time varying quantitative variables */ |
int nqtveff=0; /**< ntqveff number of effective time varying quantitative variables */ |
int cptcov=0; /* Working variable */ |
int cptcov=0; /* Working variable */ |
|
int firstobs=1, lastobs=10; /* nobs = lastobs-firstobs+1 declared globally ;*/ |
int nobs=10; /* Number of observations in the data lastobs-firstobs */ |
int nobs=10; /* Number of observations in the data lastobs-firstobs */ |
int ncovcombmax=NCOVMAX; /* Maximum calculated number of covariate combination = pow(2, cptcoveff) */ |
int ncovcombmax=NCOVMAX; /* Maximum calculated number of covariate combination = pow(2, cptcoveff) */ |
int npar=NPARMAX; /* Number of parameters (nlstate+ndeath-1)*nlstate*ncovmodel; */ |
int npar=NPARMAX; /* Number of parameters (nlstate+ndeath-1)*nlstate*ncovmodel; */ |
Line 1524 int *TvarsQind;
|
Line 1528 int *TvarsQind;
|
#define MAXRESULTLINESPONE 10+1 |
#define MAXRESULTLINESPONE 10+1 |
int nresult=0; |
int nresult=0; |
int parameterline=0; /* # of the parameter (type) line */ |
int parameterline=0; /* # of the parameter (type) line */ |
int TKresult[MAXRESULTLINESPONE]; |
int TKresult[MAXRESULTLINESPONE]; /* TKresult[nres]=k for each resultline nres give the corresponding combination of dummies */ |
int resultmodel[MAXRESULTLINESPONE][NCOVMAX];/* resultmodel[k1]=k3: k1th position in the model correspond to the k3 position in the resultline */ |
int resultmodel[MAXRESULTLINESPONE][NCOVMAX];/* resultmodel[k1]=k3: k1th position in the model corresponds to the k3 position in the resultline */ |
int Tresult[MAXRESULTLINESPONE][NCOVMAX];/* For dummy variable , value (output) */ |
int modelresult[MAXRESULTLINESPONE][NCOVMAX];/* modelresult[k3]=k1: k1th position in the model corresponds to the k3 position in the resultline */ |
|
int Tresult[MAXRESULTLINESPONE][NCOVMAX];/* Tresult[nres][result_position]= value of the dummy variable at the result_position in the nres resultline */ |
int Tinvresult[MAXRESULTLINESPONE][NCOVMAX];/* Tinvresult[nres][Name of a dummy variable]= value of the variable in the result line */ |
int Tinvresult[MAXRESULTLINESPONE][NCOVMAX];/* Tinvresult[nres][Name of a dummy variable]= value of the variable in the result line */ |
double TinvDoQresult[MAXRESULTLINESPONE][NCOVMAX];/* TinvDoQresult[nres][Name of a Dummy or Q variable]= value of the variable in the result line */ |
double TinvDoQresult[MAXRESULTLINESPONE][NCOVMAX];/* TinvDoQresult[nres][Name of a Dummy or Q variable]= value of the variable in the result line */ |
int Tvresult[MAXRESULTLINESPONE][NCOVMAX]; /* For dummy variable , variable # (output) */ |
int Tvresult[MAXRESULTLINESPONE][NCOVMAX]; /* Tvresult[nres][result_position]= name of the dummy variable at the result_position in the nres resultline */ |
double Tqresult[MAXRESULTLINESPONE][NCOVMAX]; /* Tqresult[nres][result_position]= value of the variable at the result_position in the nres resultline */ |
double Tqresult[MAXRESULTLINESPONE][NCOVMAX]; /* Tqresult[nres][result_position]= value of the variable at the result_position in the nres resultline */ |
double Tqinvresult[MAXRESULTLINESPONE][NCOVMAX]; /* For quantitative variable , value (output) */ |
double Tqinvresult[MAXRESULTLINESPONE][NCOVMAX]; /* For quantitative variable , value (output) */ |
int Tvqresult[MAXRESULTLINESPONE][NCOVMAX]; /* Tvqresult[nres][result_position]= id of the variable at the result_position in the nres resultline */ |
int Tvqresult[MAXRESULTLINESPONE][NCOVMAX]; /* Tvqresult[nres][result_position]= id of the variable at the result_position in the nres resultline */ |
Line 4975 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 4980 Title=%s <br>Datafile=%s Firstpass=%d La
|
j1=0; |
j1=0; |
|
|
/* j=ncoveff; /\* Only fixed dummy covariates *\/ */ |
/* j=ncoveff; /\* Only fixed dummy covariates *\/ */ |
j=cptcoveff; /* Only dummy covariates of the model */ |
j=cptcoveff; /* Only dummy covariates used in the model */ |
/* j=cptcovn; /\* Only dummy covariates of the model *\/ */ |
/* j=cptcovn; /\* Only dummy covariates of the model *\/ */ |
if (cptcovn<1) {j=1;ncodemax[1]=1;} |
if (cptcovn<1) {j=1;ncodemax[1]=1;} |
|
|
Line 5090 Title=%s <br>Datafile=%s Firstpass=%d La
|
Line 5095 Title=%s <br>Datafile=%s Firstpass=%d La
|
constant and age model which counts them. */ |
constant and age model which counts them. */ |
bool=0; /* not selected */ |
bool=0; /* not selected */ |
}else if( Fixed[Tmodelind[z1]]== 0) { /* fixed */ |
}else if( Fixed[Tmodelind[z1]]== 0) { /* fixed */ |
if (covar[Tvaraff[z1]][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]) { |
/* i1=Tvaraff[z1]; */ |
|
/* i2=TnsdVar[i1]; */ |
|
/* i3=nbcode[i1][i2]; */ |
|
/* i4=covar[i1][iind]; */ |
|
/* if(i4 != i3){ */ |
|
if (covar[Tvaraff[z1]][iind]!= nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]) { /* Bug valgrind */ |
bool=0; |
bool=0; |
} |
} |
} |
} |
Line 6018 void concatwav(int wav[], int **dh, int
|
Line 6028 void concatwav(int wav[], int **dh, int
|
break; |
break; |
} /* end switch */ |
} /* end switch */ |
} /* end dummy test */ |
} /* end dummy test */ |
if(Dummy[k]==1 && Typevar[k] !=1){ /* Dummy covariate and not age product */ |
if(Dummy[k]==1 && Typevar[k] !=1){ /* Quantitative covariate and not age product */ |
for (i=1; i<=imx; i++) { /* Loop on individuals: reads the data file to get the maximum value of the modality of this covariate Vj*/ |
for (i=1; i<=imx; i++) { /* Loop on individuals: reads the data file to get the maximum value of the modality of this covariate Vj*/ |
if(isnan(covar[Tvar[k]][i])){ |
if(isnan(covar[Tvar[k]][i])){ |
printf("ERROR, IMaCh doesn't treat fixed quantitative covariate with missing values V%d=., individual %d will be skipped.\n",Tvar[k],i); |
printf("ERROR, IMaCh doesn't treat fixed quantitative covariate with missing values V%d=., individual %d will be skipped.\n",Tvar[k],i); |
Line 6464 void concatwav(int wav[], int **dh, int
|
Line 6474 void concatwav(int wav[], int **dh, int
|
pstamp(ficresprobmorprev); |
pstamp(ficresprobmorprev); |
fprintf(ficresprobmorprev,"# probabilities of dying before estepm=%d months for people of exact age and weighted probabilities w1*p1j+w2*p2j+... stand dev in()\n",estepm); |
fprintf(ficresprobmorprev,"# probabilities of dying before estepm=%d months for people of exact age and weighted probabilities w1*p1j+w2*p2j+... stand dev in()\n",estepm); |
fprintf(ficresprobmorprev,"# Selected quantitative variables and dummies"); |
fprintf(ficresprobmorprev,"# Selected quantitative variables and dummies"); |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ /* To be done*/ |
fprintf(ficresprobmorprev," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
fprintf(ficresprobmorprev," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
} |
} |
for(j=1;j<=cptcoveff;j++) |
for(j=1;j<=cptcoveff;j++) |
fprintf(ficresprobmorprev,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(ij,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresprobmorprev," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(ij,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresprobmorprev,"\n"); |
fprintf(ficresprobmorprev,"\n"); |
|
|
fprintf(ficresprobmorprev,"# Age cov=%-d",ij); |
fprintf(ficresprobmorprev,"# Age cov=%-d",ij); |
Line 7099 To be simple, these graphs help to under
|
Line 7109 To be simple, these graphs help to under
|
|
|
for(nres=1;nres <=nresult; nres++){ /* For each resultline */ |
for(nres=1;nres <=nresult; nres++){ /* For each resultline */ |
for(j1=1; j1<=tj;j1++){ /* For any combination of dummy covariates, fixed and varying */ |
for(j1=1; j1<=tj;j1++){ /* For any combination of dummy covariates, fixed and varying */ |
printf("Varprob TKresult[nres]=%d j1=%d, nres=%d, cptcovn=%d, cptcoveff=%d tj=%d \n", TKresult[nres], j1, nres, cptcovn, cptcoveff, tj); |
printf("Varprob TKresult[nres]=%d j1=%d, nres=%d, cptcovn=%d, cptcoveff=%d tj=%d cptcovs=%d\n", TKresult[nres], j1, nres, cptcovn, cptcoveff, tj, cptcovs); |
if(tj != 1 && TKresult[nres]!= j1) |
if(tj != 1 && TKresult[nres]!= j1) |
continue; |
continue; |
|
|
Line 7107 To be simple, these graphs help to under
|
Line 7117 To be simple, these graphs help to under
|
/* for(nres=1;nres <=1; nres++){ /\* For each resultline *\/ */ |
/* for(nres=1;nres <=1; nres++){ /\* For each resultline *\/ */ |
/* /\* for(nres=1;nres <=nresult; nres++){ /\\* For each resultline *\\/ *\/ */ |
/* /\* for(nres=1;nres <=nresult; nres++){ /\\* For each resultline *\\/ *\/ */ |
if (cptcovn>0) { |
if (cptcovn>0) { |
fprintf(ficresprob, "\n#********** Variable "); |
fprintf(ficresprob, "\n#********** Variable "); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprob, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
|
fprintf(ficresprob, "**********\n#\n"); |
|
fprintf(ficresprobcov, "\n#********** Variable "); |
fprintf(ficresprobcov, "\n#********** Variable "); |
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcov, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
fprintf(ficgp, "\n#********** Variable "); |
|
fprintf(fichtmcov, "\n<hr size=\"2\" color=\"#EC5E5E\">********** Variable "); |
|
fprintf(ficresprobcor, "\n#********** Variable "); |
|
|
|
/* Including quantitative variables of the resultline to be done */ |
|
for (z1=1; z1<=cptcovs; z1++){ /* Loop on each variable of this resultline */ |
|
printf("Varprob modelresult[%d][%d]=%d model=%s \n",nres, z1, modelresult[nres][z1], model); |
|
fprintf(ficlog,"Varprob modelresult[%d][%d]=%d model=%s \n",nres, z1, modelresult[nres][z1], model); |
|
/* fprintf(ficlog,"Varprob modelresult[%d][%d]=%d model=%s resultline[%d]=%s \n",nres, z1, modelresult[nres][z1], model, nres, resultline[nres]); */ |
|
if(Dummy[modelresult[nres][z1]]==0){/* Dummy variable of the variable in position modelresult in the model corresponding to z1 in resultline */ |
|
if(Fixed[modelresult[nres][z1]]==0){ /* Fixed referenced to model equation */ |
|
fprintf(ficresprob,"V%d=%d ",Tvresult[nres][z1],Tresult[nres][z1]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
fprintf(ficresprobcov,"V%d=%d ",Tvresult[nres][z1],Tresult[nres][z1]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
fprintf(ficgp,"V%d=%d ",Tvresult[nres][z1],Tresult[nres][z1]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
fprintf(fichtmcov,"V%d=%d ",Tvresult[nres][z1],Tresult[nres][z1]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
fprintf(ficresprobcor,"V%d=%d ",Tvresult[nres][z1],Tresult[nres][z1]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
fprintf(ficresprob,"fixed "); |
|
fprintf(ficresprobcov,"fixed "); |
|
fprintf(ficgp,"fixed "); |
|
fprintf(fichtmcov,"fixed "); |
|
fprintf(ficresprobcor,"fixed "); |
|
}else{ |
|
fprintf(ficresprob,"varyi "); |
|
fprintf(ficresprobcov,"varyi "); |
|
fprintf(ficgp,"varyi "); |
|
fprintf(fichtmcov,"varyi "); |
|
fprintf(ficresprobcor,"varyi "); |
|
} |
|
}else if(Dummy[modelresult[nres][z1]]==1){ /* Quanti variable */ |
|
/* For each selected (single) quantitative value */ |
|
fprintf(ficresprob," V%d=%f ",Tvqresult[nres][z1],Tqresult[nres][z1]); |
|
if(Fixed[modelresult[nres][z1]]==0){ /* Fixed */ |
|
fprintf(ficresprob,"fixed "); |
|
fprintf(ficresprobcov,"fixed "); |
|
fprintf(ficgp,"fixed "); |
|
fprintf(fichtmcov,"fixed "); |
|
fprintf(ficresprobcor,"fixed "); |
|
}else{ |
|
fprintf(ficresprob,"varyi "); |
|
fprintf(ficresprobcov,"varyi "); |
|
fprintf(ficgp,"varyi "); |
|
fprintf(fichtmcov,"varyi "); |
|
fprintf(ficresprobcor,"varyi "); |
|
} |
|
}else{ |
|
printf("Error in varprob() Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=V%d cptcovs=%d, cptcoveff=%d \n", nres, z1, Dummy[modelresult[nres][z1]],nres,z1,modelresult[nres][z1],cptcovs, cptcoveff); /* end if dummy or quanti */ |
|
fprintf(ficlog,"Error in varprob() Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=V%d cptcovs=%d, cptcoveff=%d \n", nres, z1, Dummy[modelresult[nres][z1]],nres,z1,modelresult[nres][z1],cptcovs, cptcoveff); /* end if dummy or quanti */ |
|
exit(1); |
|
} |
|
} /* End loop on variable of this resultline */ |
|
/* for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprob, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); */ |
|
fprintf(ficresprob, "**********\n#\n"); |
fprintf(ficresprobcov, "**********\n#\n"); |
fprintf(ficresprobcov, "**********\n#\n"); |
|
|
fprintf(ficgp, "\n#********** Variable "); |
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficgp, " V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
|
fprintf(ficgp, "**********\n#\n"); |
fprintf(ficgp, "**********\n#\n"); |
|
|
|
|
fprintf(fichtmcov, "\n<hr size=\"2\" color=\"#EC5E5E\">********** Variable "); |
|
/* for (z1=1; z1<=cptcoveff; z1++) fprintf(fichtm, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,z1)]); */ |
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(fichtmcov, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
|
fprintf(fichtmcov, "**********\n<hr size=\"2\" color=\"#EC5E5E\">"); |
fprintf(fichtmcov, "**********\n<hr size=\"2\" color=\"#EC5E5E\">"); |
|
|
fprintf(ficresprobcor, "\n#********** Variable "); |
|
for (z1=1; z1<=cptcoveff; z1++) fprintf(ficresprobcor, "V%d=%d ",Tvaraff[z1],nbcode[Tvaraff[z1]][codtabm(j1,TnsdVar[Tvaraff[z1]])]); |
|
fprintf(ficresprobcor, "**********\n#"); |
fprintf(ficresprobcor, "**********\n#"); |
if(invalidvarcomb[j1]){ |
if(invalidvarcomb[j1]){ |
fprintf(ficgp,"\n#Combination (%d) ignored because no cases \n",j1); |
fprintf(ficgp,"\n#Combination (%d) ignored because no cases \n",j1); |
Line 7137 To be simple, these graphs help to under
|
Line 7185 To be simple, these graphs help to under
|
trgradg=matrix(1,(nlstate)*(nlstate+ndeath),1,npar); |
trgradg=matrix(1,(nlstate)*(nlstate+ndeath),1,npar); |
gp=vector(1,(nlstate)*(nlstate+ndeath)); |
gp=vector(1,(nlstate)*(nlstate+ndeath)); |
gm=vector(1,(nlstate)*(nlstate+ndeath)); |
gm=vector(1,(nlstate)*(nlstate+ndeath)); |
for (age=bage; age<=fage; age ++){ |
for (age=bage; age<=fage; age ++){ /* Fo each age we feed the model equation with covariates, using precov as in hpxij() ? */ |
cov[2]=age; |
cov[2]=age; |
if(nagesqr==1) |
if(nagesqr==1) |
cov[3]= age*age; |
cov[3]= age*age; |
/* for (k=1; k<=cptcovn;k++) { */ |
/* New code end of combination but for each resultline */ |
/* cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,k)]; */ |
for(k1=1;k1<=cptcovt;k1++){ /* loop on model equation (including products) */ |
for (k=1; k<=nsd;k++) { /* For single dummy covariates only */ |
if(Typevar[k1]==1){ /* A product with age */ |
/* Here comes the value of the covariate 'j1' after renumbering k with single dummy covariates */ |
cov[2+nagesqr+k1]=precov[nres][k1]*cov[2]; |
cov[2+nagesqr+TvarsDind[k]]=nbcode[TvarsD[k]][codtabm(j1,TnsdVar[TvarsD[k]])]; |
|
/*cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,Tvar[k])];*//* j1 1 2 3 4 |
|
* 1 1 1 1 1 |
|
* 2 2 1 1 1 |
|
* 3 1 2 1 1 |
|
*/ |
|
/* nbcode[1][1]=0 nbcode[1][2]=1;*/ |
|
} |
|
/* V2+V1+V4+V3*age Tvar[4]=3 ; V1+V2*age Tvar[2]=2; V1+V1*age Tvar[2]=1, Tage[1]=2 */ |
|
/* ) p nbcode[Tvar[Tage[k]]][(1 & (ij-1) >> (k-1))+1] */ |
|
/*for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=cov[2+Tage[k]]*cov[2]; */ |
|
for (k=1; k<=cptcovage;k++){ /* For product with age */ |
|
if(Dummy[Tage[k]]==2){ /* dummy with age */ |
|
cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(j1,TnsdVar[Tvar[Tage[k]]])]*cov[2]; |
|
/* cov[++k1]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; */ |
|
} else if(Dummy[Tage[k]]==3){ /* quantitative with age */ |
|
printf("Internal IMaCh error, don't know which value for quantitative covariate with age, Tage[k]%d, k=%d, Tvar[Tage[k]]=V%d, age=%d\n",Tage[k],k ,Tvar[Tage[k]], (int)cov[2]); |
|
/* cov[2+nagesqr+Tage[k]]=meanq[k]/idq[k]*cov[2];/\* Using the mean of quantitative variable Tvar[Tage[k]] /\* Tqresult[nres][k]; *\/ */ |
|
/* exit(1); */ |
|
/* cov[++k1]=Tqresult[nres][k]; */ |
|
} |
|
/* cov[2+Tage[k]+nagesqr]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; */ |
|
} |
|
for (k=1; k<=cptcovprod;k++){/* For product without age */ |
|
if(Dummy[Tvard[k][1]]==0){ |
|
if(Dummy[Tvard[k][2]]==0){ |
|
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(j1,TnsdVar[Tvard[k][1]])] * nbcode[Tvard[k][2]][codtabm(j1,TnsdVar[Tvard[k][2]])]; |
|
/* cov[++k1]=nbcode[Tvard[k][1]][codtabm(ij,k)] * nbcode[Tvard[k][2]][codtabm(ij,k)]; */ |
|
}else{ /* Should we use the mean of the quantitative variables? */ |
|
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(j1,TnsdVar[Tvard[k][1]])] * Tqresult[nres][resultmodel[nres][k]]; |
|
/* cov[++k1]=nbcode[Tvard[k][1]][codtabm(ij,k)] * Tqresult[nres][k]; */ |
|
} |
|
}else{ |
}else{ |
if(Dummy[Tvard[k][2]]==0){ |
cov[2+nagesqr+k1]=precov[nres][k1]; |
cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][2]][codtabm(j1,TnsdVar[Tvard[k][2]])] * Tqinvresult[nres][TnsdVar[Tvard[k][1]]]; |
|
/* cov[++k1]=nbcode[Tvard[k][2]][codtabm(ij,k)] * Tqinvresult[nres][Tvard[k][1]]; */ |
|
}else{ |
|
cov[2+nagesqr+Tprod[k]]=Tqinvresult[nres][TnsdVar[Tvard[k][1]]]* Tqinvresult[nres][TnsdVar[Tvard[k][2]]]; |
|
/* cov[++k1]=Tqinvresult[nres][Tvard[k][1]]* Tqinvresult[nres][Tvard[k][2]]; */ |
|
} |
|
} |
} |
/* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)]*nbcode[Tvard[k][2]][codtabm(ij,k)]; */ |
}/* End of loop on model equation */ |
} |
/* Old code */ |
|
/* /\* for (k=1; k<=cptcovn;k++) { *\/ */ |
|
/* /\* cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,k)]; *\/ */ |
|
/* for (k=1; k<=nsd;k++) { /\* For single dummy covariates only *\/ */ |
|
/* /\* Here comes the value of the covariate 'j1' after renumbering k with single dummy covariates *\/ */ |
|
/* cov[2+nagesqr+TvarsDind[k]]=nbcode[TvarsD[k]][codtabm(j1,TnsdVar[TvarsD[k]])]; */ |
|
/* /\*cov[2+nagesqr+k]=nbcode[Tvar[k]][codtabm(j1,Tvar[k])];*\//\* j1 1 2 3 4 */ |
|
/* * 1 1 1 1 1 */ |
|
/* * 2 2 1 1 1 */ |
|
/* * 3 1 2 1 1 */ |
|
/* *\/ */ |
|
/* /\* nbcode[1][1]=0 nbcode[1][2]=1;*\/ */ |
|
/* } */ |
|
/* /\* V2+V1+V4+V3*age Tvar[4]=3 ; V1+V2*age Tvar[2]=2; V1+V1*age Tvar[2]=1, Tage[1]=2 *\/ */ |
|
/* /\* ) p nbcode[Tvar[Tage[k]]][(1 & (ij-1) >> (k-1))+1] *\/ */ |
|
/* /\*for (k=1; k<=cptcovage;k++) cov[2+Tage[k]]=cov[2+Tage[k]]*cov[2]; *\/ */ |
|
/* for (k=1; k<=cptcovage;k++){ /\* For product with age *\/ */ |
|
/* if(Dummy[Tage[k]]==2){ /\* dummy with age *\/ */ |
|
/* cov[2+nagesqr+Tage[k]]=nbcode[Tvar[Tage[k]]][codtabm(j1,TnsdVar[Tvar[Tage[k]]])]*cov[2]; */ |
|
/* /\* cov[++k1]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; *\/ */ |
|
/* } else if(Dummy[Tage[k]]==3){ /\* quantitative with age *\/ */ |
|
/* printf("Internal IMaCh error, don't know which value for quantitative covariate with age, Tage[k]%d, k=%d, Tvar[Tage[k]]=V%d, age=%d\n",Tage[k],k ,Tvar[Tage[k]], (int)cov[2]); */ |
|
/* /\* cov[2+nagesqr+Tage[k]]=meanq[k]/idq[k]*cov[2];/\\* Using the mean of quantitative variable Tvar[Tage[k]] /\\* Tqresult[nres][k]; *\\/ *\/ */ |
|
/* /\* exit(1); *\/ */ |
|
/* /\* cov[++k1]=Tqresult[nres][k]; *\/ */ |
|
/* } */ |
|
/* /\* cov[2+Tage[k]+nagesqr]=nbcode[Tvar[Tage[k]]][codtabm(ij,k)]*cov[2]; *\/ */ |
|
/* } */ |
|
/* for (k=1; k<=cptcovprod;k++){/\* For product without age *\/ */ |
|
/* if(Dummy[Tvard[k][1]]==0){ */ |
|
/* if(Dummy[Tvard[k][2]]==0){ */ |
|
/* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(j1,TnsdVar[Tvard[k][1]])] * nbcode[Tvard[k][2]][codtabm(j1,TnsdVar[Tvard[k][2]])]; */ |
|
/* /\* cov[++k1]=nbcode[Tvard[k][1]][codtabm(ij,k)] * nbcode[Tvard[k][2]][codtabm(ij,k)]; *\/ */ |
|
/* }else{ /\* Should we use the mean of the quantitative variables? *\/ */ |
|
/* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(j1,TnsdVar[Tvard[k][1]])] * Tqresult[nres][resultmodel[nres][k]]; */ |
|
/* /\* cov[++k1]=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(j1,TnsdVar[Tvard[k][2]])] * Tqinvresult[nres][TnsdVar[Tvard[k][1]]]; */ |
|
/* /\* cov[++k1]=nbcode[Tvard[k][2]][codtabm(ij,k)] * Tqinvresult[nres][Tvard[k][1]]; *\/ */ |
|
/* }else{ */ |
|
/* cov[2+nagesqr+Tprod[k]]=Tqinvresult[nres][TnsdVar[Tvard[k][1]]]* Tqinvresult[nres][TnsdVar[Tvard[k][2]]]; */ |
|
/* /\* cov[++k1]=Tqinvresult[nres][Tvard[k][1]]* Tqinvresult[nres][Tvard[k][2]]; *\/ */ |
|
/* } */ |
|
/* } */ |
|
/* /\* cov[2+nagesqr+Tprod[k]]=nbcode[Tvard[k][1]][codtabm(ij,k)]*nbcode[Tvard[k][2]][codtabm(ij,k)]; *\/ */ |
|
/* } */ |
/* For each age and combination of dummy covariates we slightly move the parameters of delti in order to get the gradient*/ |
/* For each age and combination of dummy covariates we slightly move the parameters of delti in order to get the gradient*/ |
for(theta=1; theta <=npar; theta++){ |
for(theta=1; theta <=npar; theta++){ |
for(i=1; i<=npar; i++) |
for(i=1; i<=npar; i++) |
Line 10265 int decoderesult( char resultline[], int
|
Line 10322 int decoderesult( char resultline[], int
|
int j=0, k=0, k1=0, k2=0, k3=0, k4=0, match=0, k2q=0, k3q=0, k4q=0; |
int j=0, k=0, k1=0, k2=0, k3=0, k4=0, match=0, k2q=0, k3q=0, k4q=0; |
char resultsav[MAXLINE]; |
char resultsav[MAXLINE]; |
/* int resultmodel[MAXLINE]; */ |
/* int resultmodel[MAXLINE]; */ |
int modelresult[MAXLINE]; |
/* int modelresult[MAXLINE]; */ |
char stra[80], strb[80], strc[80], strd[80],stre[80]; |
char stra[80], strb[80], strc[80], strd[80],stre[80]; |
|
|
removefirstspace(&resultline); |
removefirstspace(&resultline); |
Line 10274 int decoderesult( char resultline[], int
|
Line 10331 int decoderesult( char resultline[], int
|
strcpy(resultsav,resultline); |
strcpy(resultsav,resultline); |
printf("Decoderesult resultsav=\"%s\" resultline=\"%s\"\n", resultsav, resultline); |
printf("Decoderesult resultsav=\"%s\" resultline=\"%s\"\n", resultsav, resultline); |
if (strlen(resultsav) >1){ |
if (strlen(resultsav) >1){ |
j=nbocc(resultsav,'='); /**< j=Number of covariate values'=' */ |
j=nbocc(resultsav,'='); /**< j=Number of covariate values'=' in this resultline */ |
} |
} |
if(j == 0){ /* Resultline but no = */ |
if(j == 0){ /* Resultline but no = */ |
TKresult[nres]=0; /* Combination for the nresult and the model */ |
TKresult[nres]=0; /* Combination for the nresult and the model */ |
return (0); |
return (0); |
} |
} |
if( j != cptcovs ){ /* Be careful if a variable is in a product but not single */ |
if( j != cptcovs ){ /* Be careful if a variable is in a product but not single */ |
printf("ERROR: the number of variables in the resultline which is %d, differs from the number %d of variables used in the model line, %s.\n",j, cptcovs, model); |
printf("ERROR: the number of variables in the resultline which is %d, differs from the number %d of single variables used in the model line, %s.\n",j, cptcovs, model); |
fprintf(ficlog,"ERROR: the number of variables in the resultline which is %d, differs from the number %d of variables used in the model line, %s.\n",j, cptcovs, model); |
fprintf(ficlog,"ERROR: the number of variables in the resultline which is %d, differs from the number %d of single variables used in the model line, %s.\n",j, cptcovs, model); |
/* return 1;*/ |
/* return 1;*/ |
} |
} |
for(k=1; k<=j;k++){ /* Loop on any covariate of the result line */ |
for(k=1; k<=j;k++){ /* Loop on any covariate of the RESULT LINE */ |
if(nbocc(resultsav,'=') >1){ |
if(nbocc(resultsav,'=') >1){ |
cutl(stra,strb,resultsav,' '); /* keeps in strb after the first ' ' (stra is the rest of the resultline to be analyzed in the next loop *//* resultsav= "V4=1 V5=25.1 V3=0" stra= "V5=25.1 V3=0" strb= "V4=1" */ |
cutl(stra,strb,resultsav,' '); /* keeps in strb after the first ' ' (stra is the rest of the resultline to be analyzed in the next loop *//* resultsav= "V4=1 V5=25.1 V3=0" stra= "V5=25.1 V3=0" strb= "V4=1" */ |
/* If resultsav= "V4= 1 V5=25.1 V3=0" with a blank then strb="V4=" and stra="1 V5=25.1 V3=0" */ |
/* If resultsav= "V4= 1 V5=25.1 V3=0" with a blank then strb="V4=" and stra="1 V5=25.1 V3=0" */ |
Line 10309 int decoderesult( char resultline[], int
|
Line 10366 int decoderesult( char resultline[], int
|
} |
} |
/* Checking for missing or useless values in comparison of current model needs */ |
/* Checking for missing or useless values in comparison of current model needs */ |
/* Feeds resultmodel[nres][k1]=k2 for k1th product covariate with age in the model equation fed by the index k2 of the resutline*/ |
/* Feeds resultmodel[nres][k1]=k2 for k1th product covariate with age in the model equation fed by the index k2 of the resutline*/ |
for(k1=1; k1<= cptcovt ;k1++){ /* Loop on model. model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
for(k1=1; k1<= cptcovt ;k1++){ /* Loop on MODEL LINE V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
if(Typevar[k1]==0){ /* Single covariate in model */ |
if(Typevar[k1]==0){ /* Single covariate in model */ |
/* 0 for simple covariate (dummy, quantitative, fixed or varying), 1 for age product, 2 for product */ |
/* 0 for simple covariate (dummy, quantitative, fixed or varying), 1 for age product, 2 for product */ |
match=0; |
match=0; |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
if(Tvar[k1]==Tvarsel[k2]) {/* Tvar is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
if(Tvar[k1]==Tvarsel[k2]) {/* Tvar is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
modelresult[k2]=k1;/* modelresult[2]=1 modelresult[1]=2 modelresult[3]=3 modelresult[6]=4 modelresult[9]=5 */ |
modelresult[nres][k2]=k1;/* modelresult[2]=1 modelresult[1]=2 modelresult[3]=3 modelresult[6]=4 modelresult[9]=5 */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
break; |
break; |
} |
} |
Line 10330 int decoderesult( char resultline[], int
|
Line 10387 int decoderesult( char resultline[], int
|
match=0; |
match=0; |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. jth occurence of = signs in the result line. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
for(k2=1; k2 <=j;k2++){/* Loop on resultline. jth occurence of = signs in the result line. In result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
if(Tvar[k1]==Tvarsel[k2]) {/* Tvar is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
if(Tvar[k1]==Tvarsel[k2]) {/* Tvar is coming from the model, Tvarsel from the result. Tvar[1]=5 == Tvarsel[2]=5 */ |
modelresult[k2]=k1;/* we found a Vn=1 corrresponding to Vn*age in the model modelresult[2]=1 modelresult[1]=2 modelresult[3]=3 modelresult[6]=4 modelresult[9]=5 */ |
modelresult[nres][k2]=k1;/* we found a Vn=1 corrresponding to Vn*age in the model modelresult[2]=1 modelresult[1]=2 modelresult[3]=3 modelresult[6]=4 modelresult[9]=5 */ |
resultmodel[nres][k1]=k2; /* Added here */ |
resultmodel[nres][k1]=k2; /* Added here */ |
printf("Decoderesult first modelresult[k2=%d]=%d (k1) V%d*AGE\n",k2,k1,Tvar[k1]); |
printf("Decoderesult first modelresult[k2=%d]=%d (k1) V%d*AGE\n",k2,k1,Tvar[k1]); |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
match=1; /* modelresult of k2 variable of resultline is identical to k1 variable of the model good */ |
Line 10376 int decoderesult( char resultline[], int
|
Line 10433 int decoderesult( char resultline[], int
|
}/* End loop cptcovt */ |
}/* End loop cptcovt */ |
/* Checking for missing or useless values in comparison of current model needs */ |
/* Checking for missing or useless values in comparison of current model needs */ |
/* Feeds resultmodel[nres][k1]=k2 for single covariate (k1) in the model equation */ |
/* Feeds resultmodel[nres][k1]=k2 for single covariate (k1) in the model equation */ |
for(k2=1; k2 <=j;k2++){ /* Loop on resultline variables: result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
for(k2=1; k2 <=j;k2++){ /* j or cptcovs is the number of single covariates used either in the model line as well as in the result line (dummy or quantitative) |
|
* Loop on resultline variables: result line V4=1 V5=24.1 V3=1 V2=8 V1=0 */ |
match=0; |
match=0; |
for(k1=1; k1<= cptcovt ;k1++){ /* loop on model: model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
for(k1=1; k1<= cptcovt ;k1++){ /* loop on model: model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
if(Typevar[k1]==0){ /* Single only */ |
if(Typevar[k1]==0){ /* Single only */ |
if(Tvar[k1]==Tvarsel[k2]) { /* Tvar[2]=4 == Tvarsel[1]=4 */ |
if(Tvar[k1]==Tvarsel[k2]) { /* Tvar[2]=4 == Tvarsel[1]=4 */ |
resultmodel[nres][k1]=k2; /* k1th position in the model equation corresponds to k2th position in the result line. resultmodel[2]=1 resultmodel[1]=2 resultmodel[3]=3 resultmodel[6]=4 resultmodel[9]=5 */ |
resultmodel[nres][k1]=k2; /* k1th position in the model equation corresponds to k2th position in the result line. resultmodel[2]=1 resultmodel[1]=2 resultmodel[3]=3 resultmodel[6]=4 resultmodel[9]=5 */ |
|
modelresult[nres][k2]=k1; /* k1th position in the model equation corresponds to k2th position in the result line. modelresult[1]=2 modelresult[2]=1 modelresult[3]=3 remodelresult[4]=6 modelresult[5]=9 */ |
++match; |
++match; |
} |
} |
} |
} |
Line 10396 int decoderesult( char resultline[], int
|
Line 10455 int decoderesult( char resultline[], int
|
return 1; |
return 1; |
} |
} |
} |
} |
|
/* cptcovres=j /\* Number of variables in the resultline is equal to cptcovs and thus useless *\/ */ |
/* We need to deduce which combination number is chosen and save quantitative values */ |
/* We need to deduce which combination number is chosen and save quantitative values */ |
/* model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
/* model line V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ |
/* nres=1st result line: V4=1 V5=25.1 V3=0 V2=8 V1=1 */ |
/* nres=1st result line: V4=1 V5=25.1 V3=0 V2=8 V1=1 */ |
Line 10415 int decoderesult( char resultline[], int
|
Line 10474 int decoderesult( char resultline[], int
|
/* V(Tvqresult)=Tqresult V5=25.1 V2=8 Tqresult[nres=1][1]=25.1 */ |
/* V(Tvqresult)=Tqresult V5=25.1 V2=8 Tqresult[nres=1][1]=25.1 */ |
/* V5*age V5 known which value for nres? */ |
/* V5*age V5 known which value for nres? */ |
/* Tqinvresult[2]=8 Tqinvresult[1]=25.1 */ |
/* Tqinvresult[2]=8 Tqinvresult[1]=25.1 */ |
for(k1=1, k=0, k4=0, k4q=0; k1 <=cptcovt;k1++){ /* loop k1 on position in the model line (excluding product) */ |
for(k1=1, k=0, k4=0, k4q=0; k1 <=cptcovt;k1++){ /* cptcovt number of covariates (excluding 1 and age or age*age) in the MODEL equation. |
|
* loop on position k1 in the MODEL LINE */ |
/* k counting number of combination of single dummies in the equation model */ |
/* k counting number of combination of single dummies in the equation model */ |
/* k4 counting single dummies in the equation model */ |
/* k4 counting single dummies in the equation model */ |
/* k4q counting single quantitatives in the equation model */ |
/* k4q counting single quantitatives in the equation model */ |
if( Dummy[k1]==0 && Typevar[k1]==0 ){ /* Dummy and Single */ |
if( Dummy[k1]==0 && Typevar[k1]==0 ){ /* Dummy and Single, k1 is sorting according to MODEL, but k3 to resultline */ |
/* k4+1= position in the resultline V(Tvarsel)=Tvalsel=Tresult[nres][pos](value); V(Tvresult[nres][pos] (variable): V(variable)=value) */ |
/* k4+1= (not always if quant in model) position in the resultline V(Tvarsel)=Tvalsel=Tresult[nres][pos](value); V(Tvresult[nres][pos] (variable): V(variable)=value) */ |
/* modelresult[k3]=k1: k3th position in the result line corresponds to the k1 position in the model line (doesn't work with products)*/ |
/* modelresult[k3]=k1: k3th position in the result line corresponds to the k1 position in the model line (doesn't work with products)*/ |
/* Value in the (current nres) resultline of the variable at the k1th position in the model equation resultmodel[nres][k1]= k3 */ |
/* Value in the (current nres) resultline of the variable at the k1th position in the model equation resultmodel[nres][k1]= k3 */ |
/* resultmodel[nres][k1]=k3: k1th position in the model correspond to the k3 position in the resultline */ |
/* resultmodel[nres][k1]=k3: k1th position in the model correspond to the k3 position in the resultline */ |
Line 10428 int decoderesult( char resultline[], int
|
Line 10488 int decoderesult( char resultline[], int
|
/* Tvarsel[k3]: Name of the variable at the k3th position in the result line. */ |
/* Tvarsel[k3]: Name of the variable at the k3th position in the result line. */ |
/* Tvalsel[k3]: Value of the variable at the k3th position in the result line. */ |
/* Tvalsel[k3]: Value of the variable at the k3th position in the result line. */ |
/* Tresult[nres][result_position]= value of the dummy variable at the result_position in the nres resultline */ |
/* Tresult[nres][result_position]= value of the dummy variable at the result_position in the nres resultline */ |
/* Tvresult[nres][result_position]= id of the dummy variable at the result_position in the nres resultline */ |
/* Tvresult[nres][result_position]= name of the dummy variable at the result_position in the nres resultline */ |
/* Tinvresult[nres][Name of a dummy variable]= value of the variable in the result line */ |
/* Tinvresult[nres][Name of a dummy variable]= value of the variable in the result line */ |
/* TinvDoQresult[nres][Name of a Dummy or Q variable]= value of the variable in the result line */ |
/* TinvDoQresult[nres][Name of a Dummy or Q variable]= value of the variable in the result line */ |
k3= resultmodel[nres][k1]; /* From position k1 in model get position k3 in result line */ |
k3= resultmodel[nres][k1]; /* From position k1 in model get position k3 in result line */ |
/* nres=1 k1=2 resultmodel[2(V4)] = 1=k3 ; k1=3 resultmodel[3(V3)] = 2=k3*/ |
/* nres=1 k1=2 resultmodel[2(V4)] = 1=k3 ; k1=3 resultmodel[3(V3)] = 2=k3*/ |
k2=(int)Tvarsel[k3]; /* from position k3 in resultline get name k2: nres=1 k1=2=>k3=1 Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 (V4); k1=3=>k3=2 Tvarsel[2]=3 (V3)*/ |
k2=(int)Tvarsel[k3]; /* from position k3 in resultline get name k2: nres=1 k1=2=>k3=1 Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 (V4); k1=3=>k3=2 Tvarsel[2]=3 (V3)*/ |
k+=Tvalsel[k3]*pow(2,k4); /* nres=1 k1=2 Tvalsel[1]=1 (V4=1); k1=3 k3=2 Tvalsel[2]=0 (V3=0) */ |
k+=Tvalsel[k3]*pow(2,k4); /* nres=1 k1=2 Tvalsel[1]=1 (V4=1); k1=3 k3=2 Tvalsel[2]=0 (V3=0) */ |
TinvDoQresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* Stores the value into the name of the variable. */ |
TinvDoQresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* TinvDoQresult[nres][Name]=Value; stores the value into the name of the variable. */ |
/* Tinvresult[nres][4]=1 */ |
/* Tinvresult[nres][4]=1 */ |
Tresult[nres][k4+1]=Tvalsel[k3];/* Tresult[nres=2][1]=1(V4=1) Tresult[nres=2][2]=0(V3=0) */ |
/* Tresult[nres][k4+1]=Tvalsel[k3];/\* Tresult[nres=2][1]=1(V4=1) Tresult[nres=2][2]=0(V3=0) *\/ */ |
Tvresult[nres][k4+1]=(int)Tvarsel[k3];/* Tvresult[nres][1]=4 Tvresult[nres][3]=1 */ |
Tresult[nres][k3]=Tvalsel[k3];/* Tresult[nres=2][1]=1(V4=1) Tresult[nres=2][2]=0(V3=0) */ |
|
/* Tvresult[nres][k4+1]=(int)Tvarsel[k3];/\* Tvresult[nres][1]=4 Tvresult[nres][3]=1 *\/ */ |
|
Tvresult[nres][k3]=(int)Tvarsel[k3];/* Tvresult[nres][1]=4 Tvresult[nres][3]=1 */ |
Tinvresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* Tinvresult[nres][4]=1 */ |
Tinvresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* Tinvresult[nres][4]=1 */ |
precov[nres][k1]=Tvalsel[k3]; |
precov[nres][k1]=Tvalsel[k3]; /* Value from resultline of the variable at the k1 position in the model */ |
printf("Decoderesult Dummy k=%d, k1=%d precov[nres=%d][k1=%d]=%.f V(k2=V%d)= Tvalsel[%d]=%d, 2**(%d)\n",k, k1, nres, k1,precov[nres][k1], k2, k3, (int)Tvalsel[k3], k4); |
printf("Decoderesult Dummy k=%d, k1=%d precov[nres=%d][k1=%d]=%.f V(k2=V%d)= Tvalsel[%d]=%d, 2**(%d)\n",k, k1, nres, k1,precov[nres][k1], k2, k3, (int)Tvalsel[k3], k4); |
k4++;; |
k4++;; |
}else if( Dummy[k1]==1 && Typevar[k1]==0 ){ /* Quantitative and single */ |
}else if( Dummy[k1]==1 && Typevar[k1]==0 ){ /* Quantitative and single */ |
Line 10450 int decoderesult( char resultline[], int
|
Line 10512 int decoderesult( char resultline[], int
|
k3q= resultmodel[nres][k1]; /* resultmodel[1(V5)] = 5 =k3q */ |
k3q= resultmodel[nres][k1]; /* resultmodel[1(V5)] = 5 =k3q */ |
k2q=(int)Tvarsel[k3q]; /* Name of variable at k3q th position in the resultline */ |
k2q=(int)Tvarsel[k3q]; /* Name of variable at k3q th position in the resultline */ |
/* Tvarsel[resultmodel[1]]= Tvarsel[1] = 4=k2 */ |
/* Tvarsel[resultmodel[1]]= Tvarsel[1] = 4=k2 */ |
Tqresult[nres][k4q+1]=Tvalsel[k3q]; /* Tqresult[nres][1]=25.1 */ |
/* Tqresult[nres][k4q+1]=Tvalsel[k3q]; /\* Tqresult[nres][1]=25.1 *\/ */ |
Tvqresult[nres][k4q+1]=(int)Tvarsel[k3q]; /* Tvqresult[nres][1]=5 */ |
/* Tvresult[nres][k4q+1]=(int)Tvarsel[k3q];/\* Tvresult[nres][1]=4 Tvresult[nres][3]=1 *\/ */ |
|
/* Tvqresult[nres][k4q+1]=(int)Tvarsel[k3q]; /\* Tvqresult[nres][1]=5 *\/ */ |
|
Tqresult[nres][k3q]=Tvalsel[k3q]; /* Tqresult[nres][1]=25.1 */ |
|
Tvresult[nres][k3q]=(int)Tvarsel[k3q];/* Tvresult[nres][1]=4 Tvresult[nres][3]=1 */ |
|
Tvqresult[nres][k3q]=(int)Tvarsel[k3q]; /* Tvqresult[nres][1]=5 */ |
Tqinvresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
Tqinvresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
precov[nres][k1]=Tvalsel[k3q]; |
precov[nres][k1]=Tvalsel[k3q]; |
Line 10463 int decoderesult( char resultline[], int
|
Line 10529 int decoderesult( char resultline[], int
|
|
|
k3= resultmodel[nres][k1]; /* nres=1 k1=2 resultmodel[2(V4)] = 1=k3 ; k1=3 resultmodel[3(V3)] = 2=k3*/ |
k3= resultmodel[nres][k1]; /* nres=1 k1=2 resultmodel[2(V4)] = 1=k3 ; k1=3 resultmodel[3(V3)] = 2=k3*/ |
k2=(int)Tvarsel[k3]; /* nres=1 k1=2=>k3=1 Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 (V4); k1=3=>k3=2 Tvarsel[2]=3 (V3)*/ |
k2=(int)Tvarsel[k3]; /* nres=1 k1=2=>k3=1 Tvarsel[resultmodel[2]]= Tvarsel[1] = 4=k2 (V4); k1=3=>k3=2 Tvarsel[2]=3 (V3)*/ |
TinvDoQresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* Tinvresult[nres][4]=1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3]]=Tvalsel[k3]; /* TinvDoQresult[nres][4]=1 */ |
precov[nres][k1]=Tvalsel[k3]; |
precov[nres][k1]=Tvalsel[k3]; |
printf("Decoderesult Dummy with age k=%d, k1=%d precov[nres=%d][k1=%d]=%.f Tvar[%d]=V%d k2=Tvarsel[%d]=%d Tvalsel[%d]=%d\n",k, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k3,(int)Tvarsel[k3], k3, (int)Tvalsel[k3]); |
printf("Decoderesult Dummy with age k=%d, k1=%d precov[nres=%d][k1=%d]=%.f Tvar[%d]=V%d k2=Tvarsel[%d]=%d Tvalsel[%d]=%d\n",k, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k3,(int)Tvarsel[k3], k3, (int)Tvalsel[k3]); |
}else if( Dummy[k1]==3 ){ /* For quant with age product */ |
}else if( Dummy[k1]==3 ){ /* For quant with age product */ |
k3q= resultmodel[nres][k1]; /* resultmodel[1(V5)] = 25.1=k3q */ |
k3q= resultmodel[nres][k1]; /* resultmodel[1(V5)] = 25.1=k3q */ |
k2q=(int)Tvarsel[k3q]; /* Tvarsel[resultmodel[1]]= Tvarsel[1] = 4=k2 */ |
k2q=(int)Tvarsel[k3q]; /* Tvarsel[resultmodel[1]]= Tvarsel[1] = 4=k2 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* Tqinvresult[nres][5]=25.1 */ |
TinvDoQresult[nres][(int)Tvarsel[k3q]]=Tvalsel[k3q]; /* TinvDoQresult[nres][5]=25.1 */ |
precov[nres][k1]=Tvalsel[k3q]; |
precov[nres][k1]=Tvalsel[k3q]; |
printf("Decoderesult Quantitative with age nres=%d, k1=%d, precov[nres=%d][k1=%d]=%.f Tvar[%d]=V%d V(k2q=%d)= Tvarsel[%d]=%d, Tvalsel[%d]=%f\n",nres, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k2q, k3q, Tvarsel[k3q], k3q, Tvalsel[k3q]); |
printf("Decoderesult Quantitative with age nres=%d, k1=%d, precov[nres=%d][k1=%d]=%f Tvar[%d]=V%d V(k2q=%d)= Tvarsel[%d]=%d, Tvalsel[%d]=%f\n",nres, k1, nres, k1,precov[nres][k1], k1, Tvar[k1], k2q, k3q, Tvarsel[k3q], k3q, Tvalsel[k3q]); |
}else if(Typevar[k1]==2 ){ /* For product quant or dummy (not with age) */ |
}else if(Typevar[k1]==2 ){ /* For product quant or dummy (not with age) */ |
precov[nres][k1]=TinvDoQresult[nres][Tvardk[k1][1]] * TinvDoQresult[nres][Tvardk[k1][2]]; |
precov[nres][k1]=TinvDoQresult[nres][Tvardk[k1][1]] * TinvDoQresult[nres][Tvardk[k1][2]]; |
printf("Decoderesult Quantitative or Dummy (not with age) nres=%d k1=%d precov[nres=%d][k1=%d]=%.f V%d(=%.f) * V%d(=%.f) \n",nres, k1, nres, k1,precov[nres][k1], Tvardk[k1][1], TinvDoQresult[nres][Tvardk[k1][1]], Tvardk[k1][2], TinvDoQresult[nres][Tvardk[k1][2]]); |
printf("Decoderesult Quantitative or Dummy (not with age) nres=%d k1=%d precov[nres=%d][k1=%d]=%.f V%d(=%.f) * V%d(=%.f) \n",nres, k1, nres, k1,precov[nres][k1], Tvardk[k1][1], TinvDoQresult[nres][Tvardk[k1][1]], Tvardk[k1][2], TinvDoQresult[nres][Tvardk[k1][2]]); |
Line 10481 int decoderesult( char resultline[], int
|
Line 10547 int decoderesult( char resultline[], int
|
} |
} |
} |
} |
|
|
TKresult[nres]=++k; /* Combination for the nresult and the model */ |
TKresult[nres]=++k; /* Number of combinations of dummies for the nresult and the model =Tvalsel[k3]*pow(2,k4) + 1*/ |
return (0); |
return (0); |
} |
} |
|
|
Line 10746 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 10812 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
modell[k].maintype= FTYPE; |
modell[k].maintype= FTYPE; |
modell[k].subtype= FQ; |
modell[k].subtype= FQ; |
nsq++; |
nsq++; |
TvarsQ[nsq]=Tvar[k]; |
TvarsQ[nsq]=Tvar[k]; /* Gives the variable name (extended to products) of first nsq simple quantitative covariates (fixed or time vary see below */ |
TvarsQind[nsq]=k; |
TvarsQind[nsq]=k; /* Gives the position in the model equation of the first nsq simple quantitative covariates (fixed or time vary) */ |
ncovf++; |
ncovf++; |
TvarF[ncovf]=Tvar[k]; |
TvarF[ncovf]=Tvar[k]; |
TvarFind[ncovf]=k; |
TvarFind[ncovf]=k; |
Line 10778 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
Line 10844 Dummy[k] 0=dummy (0 1), 1 quantitative (
|
modell[k].subtype= VQ; |
modell[k].subtype= VQ; |
ncovv++; /* Only simple time varying variables */ |
ncovv++; /* Only simple time varying variables */ |
nsq++; |
nsq++; |
TvarsQ[nsq]=Tvar[k]; /* k=1 Tvar=5 nsq=1 TvarsQ[1]=5 */ |
TvarsQ[nsq]=Tvar[k]; /* k=1 Tvar=5 nsq=1 TvarsQ[1]=5 */ /* Gives the variable name (extended to products) of first nsq simple quantitative covariates (fixed or time vary here) */ |
TvarsQind[nsq]=k; /* For single quantitative covariate gives the model position of each single quantitative covariate */ |
TvarsQind[nsq]=k; /* For single quantitative covariate gives the model position of each single quantitative covariate *//* Gives the position in the model equation of the first nsq simple quantitative covariates (fixed or time vary) */ |
TvarV[ncovv]=Tvar[k]; |
TvarV[ncovv]=Tvar[k]; |
TvarVind[ncovv]=k; /* TvarVind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Any time varying singele */ |
TvarVind[ncovv]=k; /* TvarVind[1]=1 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Any time varying singele */ |
TvarVQ[nqtveff]=Tvar[k]; /* TvarVQ[1]=V5 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
TvarVQ[nqtveff]=Tvar[k]; /* TvarVQ[1]=V5 in V5+V4+V3+V4*V3+V5*age+V2+V1*V2+V1*age+V1 */ /* Only simple time varying quantitative variable */ |
Line 11722 int main(int argc, char *argv[])
|
Line 11788 int main(int argc, char *argv[])
|
|
|
char pathr[MAXLINE], pathimach[MAXLINE]; |
char pathr[MAXLINE], pathimach[MAXLINE]; |
char *tok, *val; /* pathtot */ |
char *tok, *val; /* pathtot */ |
int firstobs=1, lastobs=10; /* nobs = lastobs-firstobs declared globally ;*/ |
/* int firstobs=1, lastobs=10; /\* nobs = lastobs-firstobs declared globally ;*\/ */ |
int c, h , cpt, c2; |
int c, h , cpt, c2; |
int jl=0; |
int jl=0; |
int i1, j1, jk, stepsize=0; |
int i1, j1, jk, stepsize=0; |
Line 13631 Please run with mle=-1 to get a correct
|
Line 13697 Please run with mle=-1 to get a correct
|
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
} |
} |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
printf(" V%d=%f ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); /* TvarsQ[j] gives the name of the jth quantitative (fixed or time v) */ |
fprintf(ficreseij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
fprintf(ficreseij,"V%d=%f ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); |
} |
} |
fprintf(ficreseij,"******\n"); |
fprintf(ficreseij,"******\n"); |
printf("******\n"); |
printf("******\n"); |
Line 13689 Please run with mle=-1 to get a correct
|
Line 13755 Please run with mle=-1 to get a correct
|
i1=pow(2,cptcoveff); /* Number of combination of dummy covariates */ |
i1=pow(2,cptcoveff); /* Number of combination of dummy covariates */ |
if (cptcovn < 1){i1=1;} |
if (cptcovn < 1){i1=1;} |
|
|
for(nres=1; nres <= nresult; nres++) /* For each resultline */ |
for(nres=1; nres <= nresult; nres++) /* For each resultline, find the combination and output results according to the values of dummies and then quanti. */ |
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */ |
for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying. For each nres and each value at position k |
if(i1 != 1 && TKresult[nres]!= k) |
* we know Tresult[nres][result_position]= value of the dummy variable at the result_position in the nres resultline |
|
* Tvqresult[nres][result_position]= id of the variable at the result_position in the nres resultline |
|
* and Tqresult[nres][result_position]= value of the variable at the result_position in the nres resultline */ |
|
/* */ |
|
if(i1 != 1 && TKresult[nres]!= k) /* TKresult[nres] is the combination of this nres resultline. All the i1 combinations are not output */ |
continue; |
continue; |
printf("\n# model %s \n#****** Result for:", model); |
printf("\n# model %s \n#****** Result for:", model); |
fprintf(ficrest,"\n# model %s \n#****** Result for:", model); |
fprintf(ficrest,"\n# model %s \n#****** Result for:", model); |
fprintf(ficlog,"\n# model %s \n#****** Result for:", model); |
fprintf(ficlog,"\n# model %s \n#****** Result for:", model); |
for(j=1;j<=cptcoveff;j++){ |
/* It might not be a good idea to mix dummies and quantitative */ |
printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
/* for(j=1;j<=cptcoveff;j++){ /\* j=resultpos. Could be a loop on cptcovs: number of single dummy covariate in the result line as well as in the model *\/ */ |
fprintf(ficrest,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
for(j=1;j<=cptcovs;j++){ /* j=resultpos. Could be a loop on cptcovs: number of single covariate (dummy or quantitative) in the result line as well as in the model */ |
fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
/* printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); /\* Output by variables in the resultline *\/ */ |
|
/* Tvaraff[j] is the name of the dummy variable in position j in the equation model: |
|
* Tvaraff[1]@9={4, 3, 0, 0, 0, 0, 0, 0, 0}, in model=V5+V4+V3+V4*V3+V5*age |
|
* (V5 is quanti) V4 and V3 are dummies |
|
* TnsdVar[4] is the position 1 and TnsdVar[3]=2 in codtabm(k,l)(V4 V3)=V4 V3 |
|
* l=1 l=2 |
|
* k=1 1 1 0 0 |
|
* k=2 2 1 1 0 |
|
* k=3 [1] [2] 0 1 |
|
* k=4 2 2 1 1 |
|
* If nres=1 result: V3=1 V4=0 then k=3 and outputs |
|
* If nres=2 result: V4=1 V3=0 then k=2 and outputs |
|
* nres=1 =>k=3 j=1 V4= nbcode[4][codtabm(3,1)=1)=0; j=2 V3= nbcode[3][codtabm(3,2)=2]=1 |
|
* nres=2 =>k=2 j=1 V4= nbcode[4][codtabm(2,1)=2)=1; j=2 V3= nbcode[3][codtabm(2,2)=1]=0 |
|
*/ |
|
/* Tvresult[nres][j] Name of the variable at position j in this resultline */ |
|
/* Tresult[nres][j] Value of this variable at position j could be a float if quantitative */ |
|
/* We give up with the combinations!! */ |
|
printf("\n j=%d In computing T_ Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=%d cptcovs=%d, cptcoveff=%d Fixed[modelresult[nres][j]]=%d\n", j, nres, j, Dummy[modelresult[nres][j]],nres,j,modelresult[nres][j],cptcovs, cptcoveff,Fixed[modelresult[nres][j]]); /* end if dummy or quanti */ |
|
|
|
if(Dummy[modelresult[nres][j]]==0){/* Dummy variable of the variable in position modelresult in the model corresponding to j in resultline */ |
|
printf("V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
fprintf(ficlog,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
fprintf(ficrest,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline */ |
|
if(Fixed[modelresult[nres][j]]==0){ /* Fixed */ |
|
printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed "); |
|
}else{ |
|
printf("varyi ");fprintf(ficlog,"varyi ");fprintf(ficrest,"varyi "); |
|
} |
|
/* fprintf(ficrest,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
|
/* fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
|
}else if(Dummy[modelresult[nres][j]]==1){ /* Quanti variable */ |
|
/* For each selected (single) quantitative value */ |
|
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); |
|
if(Fixed[modelresult[nres][j]]==0){ /* Fixed */ |
|
printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed "); |
|
}else{ |
|
printf("varyi ");fprintf(ficlog,"varyi ");fprintf(ficrest,"varyi "); |
|
} |
|
}else{ |
|
printf("Error in computing T_ Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=%d cptcovs=%d, cptcoveff=%d \n", nres, j, Dummy[modelresult[nres][j]],nres,j,modelresult[nres][j],cptcovs, cptcoveff); /* end if dummy or quanti */ |
|
fprintf(ficlog,"Error in computing T_ Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=%d cptcovs=%d, cptcoveff=%d \n", nres, j, Dummy[modelresult[nres][j]],nres,j,modelresult[nres][j],cptcovs, cptcoveff); /* end if dummy or quanti */ |
|
exit(1); |
|
} |
} |
} |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
/* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */ |
printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); /\* Wrong j is not in the equation model *\/ */ |
fprintf(ficrest," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* fprintf(ficrest," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
/* fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */ |
} |
/* } */ |
fprintf(ficrest,"******\n"); |
fprintf(ficrest,"******\n"); |
fprintf(ficlog,"******\n"); |
fprintf(ficlog,"******\n"); |
printf("******\n"); |
printf("******\n"); |
Line 13713 Please run with mle=-1 to get a correct
|
Line 13826 Please run with mle=-1 to get a correct
|
fprintf(ficresstdeij,"\n#****** "); |
fprintf(ficresstdeij,"\n#****** "); |
fprintf(ficrescveij,"\n#****** "); |
fprintf(ficrescveij,"\n#****** "); |
for(j=1;j<=cptcoveff;j++) { |
for(j=1;j<=cptcoveff;j++) { |
fprintf(ficresstdeij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
fprintf(ficresstdeij,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); |
fprintf(ficrescveij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); |
/* fprintf(ficresstdeij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
} |
/* fprintf(ficrescveij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */ |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ |
} |
fprintf(ficresstdeij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value, TvarsQind gives the position of a quantitative in model equation */ |
fprintf(ficrescveij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); |
fprintf(ficresstdeij," V%d=%f ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]); |
|
fprintf(ficrescveij," V%d=%f ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]); |
} |
} |
fprintf(ficresstdeij,"******\n"); |
fprintf(ficresstdeij,"******\n"); |
fprintf(ficrescveij,"******\n"); |
fprintf(ficrescveij,"******\n"); |