From c3378c0459990dc6b05ab25bcfd55b60a59fcc8c Mon Sep 17 00:00:00 2001 From: "N. Brouard" Date: Mon, 20 Mar 2006 09:45:41 +0000 Subject: [PATCH] (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 --- src/imach.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/imach.c b/src/imach.c index f2591ad..48445d6 100644 --- a/src/imach.c +++ b/src/imach.c @@ -1,6 +1,13 @@ /* $Id$ $State$ $Log$ + 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 @@ -334,7 +341,7 @@ extern int errno; /* $Id$ */ /* $State$ */ -char version[]="Imach version 0.98f, March 2006, INED-EUROREVES-Institut de longevite "; +char version[]="Imach version 0.98g, March 2006, INED-EUROREVES-Institut de longevite "; char fullversion[]="$Revision$ $Date$"; char strstart[80]; char optionfilext[10], optionfilefiname[FILENAMELENGTH]; @@ -409,6 +416,7 @@ char strcurr[80], strfor[80]; char *endptr; long lval; +double dval; #define NR_END 1 #define FREE_ARG char* @@ -4806,12 +4814,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 +4831,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); -- 2.43.0