|
|
| version 1.121, 2006/03/16 17:45:01 | version 1.124, 2006/03/22 17:13:53 |
|---|---|
| Line 1 | Line 1 |
| /* $Id$ | /* $Id$ |
| $State$ | $State$ |
| $Log$ | $Log$ |
| Revision 1.124 2006/03/22 17:13:53 lievre | |
| Parameters are printed with %lf instead of %f (more numbers after the comma). | |
| The log-likelihood is printed in the log file | |
| Revision 1.123 2006/03/20 10:52:43 brouard | |
| * imach.c (Module): <title> changed, corresponds to .htm file | |
| name. <head> headers where missing. | |
| * imach.c (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.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 | Revision 1.121 2006/03/16 17:45:01 lievre |
| * imach.c (Module): Comments concerning covariates added | * imach.c (Module): Comments concerning covariates added |
| Line 341 extern int errno; | Line 364 extern int errno; |
| /* $Id$ */ | /* $Id$ */ |
| /* $State$ */ | /* $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 fullversion[]="$Revision$ $Date$"; |
| char strstart[80]; | char strstart[80]; |
| char optionfilext[10], optionfilefiname[FILENAMELENGTH]; | char optionfilext[10], optionfilefiname[FILENAMELENGTH]; |
| Line 416 char strcurr[80], strfor[80]; | Line 439 char strcurr[80], strfor[80]; |
| char *endptr; | char *endptr; |
| long lval; | long lval; |
| double dval; | |
| #define NR_END 1 | #define NR_END 1 |
| #define FREE_ARG char* | #define FREE_ARG char* |
| Line 981 void powell(double p[], double **xi, int | Line 1005 void powell(double p[], double **xi, int |
| last_time=curr_time; | last_time=curr_time; |
| (void) gettimeofday(&curr_time,&tzp); | (void) gettimeofday(&curr_time,&tzp); |
| printf("\nPowell iter=%d -2*LL=%.12f %ld sec. %ld sec.",*iter,*fret, curr_time.tv_sec-last_time.tv_sec, curr_time.tv_sec-start_time.tv_sec);fflush(stdout); | printf("\nPowell iter=%d -2*LL=%.12f %ld sec. %ld sec.",*iter,*fret, curr_time.tv_sec-last_time.tv_sec, curr_time.tv_sec-start_time.tv_sec);fflush(stdout); |
| /* fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f %ld sec. %ld sec.",*iter,*fret, curr_time.tv_sec-last_time.tv_sec, curr_time.tv_sec-start_time.tv_sec); | fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f %ld sec. %ld sec.",*iter,*fret, curr_time.tv_sec-last_time.tv_sec, curr_time.tv_sec-start_time.tv_sec); fflush(ficlog); |
| fprintf(ficrespow,"%d %.12f %ld",*iter,*fret,curr_time.tv_sec-start_time.tv_sec); | /* fprintf(ficrespow,"%d %.12f %ld",*iter,*fret,curr_time.tv_sec-start_time.tv_sec); */ |
| */ | |
| for (i=1;i<=n;i++) { | for (i=1;i<=n;i++) { |
| printf(" %d %.12f",i, p[i]); | printf(" %d %.12f",i, p[i]); |
| fprintf(ficlog," %d %.12lf",i, p[i]); | fprintf(ficlog," %d %.12lf",i, p[i]); |
| Line 2074 void freqsummary(char fileres[], int ia | Line 2097 void freqsummary(char fileres[], int ia |
| for(i=iagemin; i <= iagemax+3; i++){ | for(i=iagemin; i <= iagemax+3; i++){ |
| if(i==iagemax+3){ | if(i==iagemax+3){ |
| fprintf(ficlog,"Total"); | fprintf(ficlog,"Total"); |
| fprintf(fichtm,"<br>Total<br>"); | |
| }else{ | }else{ |
| if(first==1){ | if(first==1){ |
| first=0; | first=0; |
| Line 4559 int main(int argc, char *argv[]) | Line 4583 int main(int argc, char *argv[]) |
| free_ma3x(delti3,1,nlstate,1, nlstate+ndeath-1,1,ncovmodel); | free_ma3x(delti3,1,nlstate,1, nlstate+ndeath-1,1,ncovmodel); |
| fclose (ficparo); | fclose (ficparo); |
| fclose (ficlog); | fclose (ficlog); |
| goto end; | |
| exit(0); | exit(0); |
| } | } |
| else if(mle==-3) { | else if(mle==-3) { |
| Line 4589 int main(int argc, char *argv[]) | Line 4614 int main(int argc, char *argv[]) |
| j++; | j++; |
| fscanf(ficpar,"%1d%1d",&i1,&j1); | fscanf(ficpar,"%1d%1d",&i1,&j1); |
| if ((i1 != i) && (j1 != j)){ | if ((i1 != i) && (j1 != j)){ |
| 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 \ |
| It might be a problem of design; if ncovcol and the model are correct\n \ | |
| run imach with mle=-1 to get a correct template of the parameter file.\n",numlinepar, i,j, i1, j1); | |
| exit(1); | exit(1); |
| } | } |
| fprintf(ficparo,"%1d%1d",i1,j1); | fprintf(ficparo,"%1d%1d",i1,j1); |
| Line 4813 int main(int argc, char *argv[]) | Line 4840 int main(int argc, char *argv[]) |
| cutv(stra, strb,line,' '); | cutv(stra, strb,line,' '); |
| errno=0; | errno=0; |
| lval=strtol(strb,&endptr,10); | dval=strtod(strb,&endptr); |
| if( strb[0]=='\0' || (*endptr != '\0')){ | 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); | exit(1); |
| } | } |
| weight[i]=(double)(lval); | weight[i]=dval; |
| strcpy(line,stra); | strcpy(line,stra); |
| for (j=ncovcol;j>=1;j--){ | for (j=ncovcol;j>=1;j--){ |
| Line 4830 int main(int argc, char *argv[]) | Line 4857 int main(int argc, char *argv[]) |
| exit(1); | exit(1); |
| } | } |
| if(lval <-1 || lval >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); | exit(1); |
| } | } |
| covar[j][i]=(double)(lval); | covar[j][i]=(double)(lval); |
| Line 5126 int main(int argc, char *argv[]) | Line 5161 int main(int argc, char *argv[]) |
| printf("Problem with %s \n",optionfilehtmcov), exit(0); | printf("Problem with %s \n",optionfilehtmcov), exit(0); |
| } | } |
| else{ | else{ |
| fprintf(fichtmcov,"<body>\n<title>IMaCh Cov %s</title>\n <font size=\"2\">%s <br> %s</font> \ | fprintf(fichtmcov,"<html><head>\n<title>IMaCh Cov %s</title></head>\n <body><font size=\"2\">%s <br> %s</font> \ |
| <hr size=\"2\" color=\"#EC5E5E\"> \n\ | <hr size=\"2\" color=\"#EC5E5E\"> \n\ |
| Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=%s<br>\n",\ | Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=%s<br>\n",\ |
| fileres,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model); | optionfilehtmcov,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model); |
| } | } |
| fprintf(fichtm,"<body>\n<title>IMaCh %s</title>\n <font size=\"2\">%s <br> %s</font> \ | fprintf(fichtm,"<html><head>\n<title>IMaCh %s</title></head>\n <body><font size=\"2\">%s <br> %s</font> \ |
| <hr size=\"2\" color=\"#EC5E5E\"> \n\ | <hr size=\"2\" color=\"#EC5E5E\"> \n\ |
| Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=%s<br>\n\ | Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=%s<br>\n\ |
| \n\ | \n\ |
| Line 5143 Title=%s <br>Datafile=%s Firstpass=%d La | Line 5178 Title=%s <br>Datafile=%s Firstpass=%d La |
| - Log file of the run: <a href=\"%s\">%s</a><br>\n\ | - Log file of the run: <a href=\"%s\">%s</a><br>\n\ |
| - Gnuplot file name: <a href=\"%s\">%s</a><br>\n\ | - Gnuplot file name: <a href=\"%s\">%s</a><br>\n\ |
| - Date and time at start: %s</ul>\n",\ | - Date and time at start: %s</ul>\n",\ |
| fileres,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model,\ | optionfilehtm,version,fullversion,title,datafile,firstpass,lastpass,stepm, weightopt, model,\ |
| optionfilefiname,optionfilext,optionfilefiname,optionfilext,\ | optionfilefiname,optionfilext,optionfilefiname,optionfilext,\ |
| fileres,fileres,\ | fileres,fileres,\ |
| filelog,filelog,optionfilegnuplot,optionfilegnuplot,strstart); | filelog,filelog,optionfilegnuplot,optionfilegnuplot,strstart); |
| Line 5326 Interval (in months) between two waves: | Line 5361 Interval (in months) between two waves: |
| fprintf(ficlog,"%d%d ",i,k); | fprintf(ficlog,"%d%d ",i,k); |
| fprintf(ficres,"%1d%1d ",i,k); | fprintf(ficres,"%1d%1d ",i,k); |
| for(j=1; j <=ncovmodel; j++){ | for(j=1; j <=ncovmodel; j++){ |
| printf("%f ",p[jk]); | printf("%lf ",p[jk]); |
| fprintf(ficlog,"%f ",p[jk]); | fprintf(ficlog,"%lf ",p[jk]); |
| fprintf(ficres,"%f ",p[jk]); | fprintf(ficres,"%lf ",p[jk]); |
| jk++; | jk++; |
| } | } |
| printf("\n"); | printf("\n"); |
| Line 5908 Interval (in months) between two waves: | Line 5943 Interval (in months) between two waves: |
| fprintf(ficlog,"Total time was %d Sec.\n", end_time.tv_sec -start_time.tv_sec); | fprintf(ficlog,"Total time was %d Sec.\n", end_time.tv_sec -start_time.tv_sec); |
| /* printf("Total time was %d uSec.\n", total_usecs);*/ | /* printf("Total time was %d uSec.\n", total_usecs);*/ |
| /* if(fileappend(fichtm,optionfilehtm)){ */ | /* if(fileappend(fichtm,optionfilehtm)){ */ |
| fprintf(fichtm,"<br>Local time at start %s<br>Local time at end %s<br>",strstart, strtend); | fprintf(fichtm,"<br>Local time at start %s<br>Local time at end %s<br>\n</body></html>",strstart, strtend); |
| fclose(fichtm); | fclose(fichtm); |
| fprintf(fichtmcov,"<br>Local time at start %s<br>Local time at end %s<br>\n</body></html>",strstart, strtend); | |
| fclose(fichtmcov); | fclose(fichtmcov); |
| fclose(ficgp); | fclose(ficgp); |
| fclose(ficlog); | fclose(ficlog); |