--- imach/src/imach.c 2006/03/16 15:10:38 1.120
+++ imach/src/imach.c 2006/03/20 09:45:41 1.122
@@ -1,6 +1,21 @@
-/* $Id: imach.c,v 1.120 2006/03/16 15:10:38 lievre Exp $
+/* $Id: imach.c,v 1.122 2006/03/20 09:45:41 brouard Exp $
$State: Exp $
$Log: imach.c,v $
+ Revision 1.122 2006/03/20 09:45:41 brouard
+ (Module): Weights can have a decimal point as for
+ English (a comma might work with a correct LC_NUMERIC environment,
+ otherwise the weight is truncated).
+ Modification of warning when the covariates values are not 0 or
+ 1.
+ Version 0.98g
+
+ Revision 1.121 2006/03/16 17:45:01 lievre
+ * imach.c (Module): Comments concerning covariates added
+
+ * imach.c (Module): refinements in the computation of lli if
+ status=-2 in order to have more reliable computation if stepm is
+ not 1 month. Version 0.98f
+
Revision 1.120 2006/03/16 15:10:38 lievre
(Module): refinements in the computation of lli if
status=-2 in order to have more reliable computation if stepm is
@@ -331,11 +346,11 @@ extern int errno;
#define ODIRSEPARATOR '/'
#endif
-/* $Id: imach.c,v 1.120 2006/03/16 15:10:38 lievre Exp $ */
+/* $Id: imach.c,v 1.122 2006/03/20 09:45:41 brouard Exp $ */
/* $State: Exp $ */
-char version[]="Imach version 0.98f, March 2006, INED-EUROREVES-Institut de longevite ";
-char fullversion[]="$Revision: 1.120 $ $Date: 2006/03/16 15:10:38 $";
+char version[]="Imach version 0.98g, March 2006, INED-EUROREVES-Institut de longevite ";
+char fullversion[]="$Revision: 1.122 $ $Date: 2006/03/20 09:45:41 $";
char strstart[80];
char optionfilext[10], optionfilefiname[FILENAMELENGTH];
int erreur, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */
@@ -409,6 +424,7 @@ char strcurr[80], strfor[80];
char *endptr;
long lval;
+double dval;
#define NR_END 1
#define FREE_ARG char*
@@ -3453,7 +3469,7 @@ void printinghtml(char fileres[], char t
- Period (stable) prevalence in each health state: %s
\n",
subdirf2(fileres,"pl"),subdirf2(fileres,"pl"));
fprintf(fichtm,"\
- - (a) Life expectancies by health status at initial age, (b) health expectancies by health status at initial age: ei., eij (estepm=%2d months): \
+ - (a) Life expectancies by health status at initial age, (b) health expectancies by health status at initial age: ei., eij . If one or more covariate are included, specific tables for each value of the covariate are output in sequences within the same file (estepm=%2d months): \
%s
\n",
estepm,subdirf2(fileres,"e"),subdirf2(fileres,"e"));
@@ -4806,12 +4822,12 @@ int main(int argc, char *argv[])
cutv(stra, strb,line,' ');
errno=0;
- lval=strtol(strb,&endptr,10);
+ dval=strtod(strb,&endptr);
if( strb[0]=='\0' || (*endptr != '\0')){
- printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a weight. Exiting.\n",lval, i,line,linei);
+ printf("Error reading data around '%f' at line number %ld, \"%s\" for individual %d\nShould be a weight. Exiting.\n",dval, i,line,linei);
exit(1);
}
- weight[i]=(double)(lval);
+ weight[i]=dval;
strcpy(line,stra);
for (j=ncovcol;j>=1;j--){
@@ -4823,7 +4839,15 @@ int main(int argc, char *argv[])
exit(1);
}
if(lval <-1 || lval >1){
- printf("Error reading data around '%d' at line number %ld %s for individual %d, '%s'\nShould be a value of the %d covar (meaning 0 for the reference or 1. IMaCh does not build design variables, do it your self). Exiting.\n",lval,linei, i,line,j);
+ printf("Error reading data around '%d' at line number %ld for individual %d, '%s'\n \
+ Should be a value of %d(nth) covariate (0 should be the value for the reference and 1\n \
+ for the alternative. IMaCh does not build design variables automatically, do it yourself.\n \
+ For example, for multinomial values like 1, 2 and 3,\n \
+ build V1=0 V2=0 for the reference value (1),\n \
+ V1=1 V2=0 for (2) \n \
+ and V1=0 V2=1 for (3). V1=1 V2=1 should not exist and the corresponding\n \
+ output of IMaCh is often meaningless.\n \
+ Exiting.\n",lval,linei, i,line,j);
exit(1);
}
covar[j][i]=(double)(lval);