Diff for /imach/src/imach.c between versions 1.109 and 1.110

version 1.109, 2006/01/24 19:37:15 version 1.110, 2006/01/25 00:51:50
Line 1 Line 1
 /* $Id$  /* $Id$
   $State$    $State$
   $Log$    $Log$
     Revision 1.110  2006/01/25 00:51:50  brouard
     (Module): Lots of cleaning and bugs added (Gompertz)
   
   Revision 1.109  2006/01/24 19:37:15  brouard    Revision 1.109  2006/01/24 19:37:15  brouard
   (Module): Comments (lines starting with a #) are allowed in data.    (Module): Comments (lines starting with a #) are allowed in data.
   
Line 298  int popbased=0; Line 301  int popbased=0;
 int *wav; /* Number of waves for this individuual 0 is possible */  int *wav; /* Number of waves for this individuual 0 is possible */
 int maxwav; /* Maxim number of waves */  int maxwav; /* Maxim number of waves */
 int jmin, jmax; /* min, max spacing between 2 waves */  int jmin, jmax; /* min, max spacing between 2 waves */
   int ijmin, ijmax; /* Individuals having jmin and jmax */ 
 int gipmx, gsw; /* Global variables on the number of contributions   int gipmx, gsw; /* Global variables on the number of contributions 
                    to the likelihood and the sum of weights (done by funcone)*/                     to the likelihood and the sum of weights (done by funcone)*/
 int mle, weightopt;  int mle, weightopt;
Line 2228  void  concatwav(int wav[], int **dh, int Line 2232  void  concatwav(int wav[], int **dh, int
               fprintf(ficlog,"   We assumed that the date of interview was correct (and not the date of death) and postponed the death %d month(s) (one stepm) after the interview. You MUST fix the contradiction between dates.\n",stepm);                fprintf(ficlog,"   We assumed that the date of interview was correct (and not the date of death) and postponed the death %d month(s) (one stepm) after the interview. You MUST fix the contradiction between dates.\n",stepm);
             }              }
             k=k+1;              k=k+1;
             if (j >= jmax) jmax=j;              if (j >= jmax){
             if (j <= jmin) jmin=j;                jmax=j;
                 ijmax=i;
               }
               if (j <= jmin){
                 jmin=j;
                 ijmin=i;
               }
             sum=sum+j;              sum=sum+j;
             /*if (j<0) printf("j=%d num=%d \n",j,i);*/              /*if (j<0) printf("j=%d num=%d \n",j,i);*/
             /*    printf("%d %d %d %d\n", s[mw[mi][i]][i] ,s[mw[mi+1][i]][i],j,i);*/              /*    printf("%d %d %d %d\n", s[mw[mi][i]][i] ,s[mw[mi+1][i]][i],j,i);*/
Line 2240  void  concatwav(int wav[], int **dh, int Line 2250  void  concatwav(int wav[], int **dh, int
 /*        if (j<0) printf("%d %lf %lf %d %d %d\n", i,agev[mw[mi+1][i]][i], agev[mw[mi][i]][i],j,s[mw[mi][i]][i] ,s[mw[mi+1][i]][i]); */  /*        if (j<0) printf("%d %lf %lf %d %d %d\n", i,agev[mw[mi+1][i]][i], agev[mw[mi][i]][i],j,s[mw[mi][i]][i] ,s[mw[mi+1][i]][i]); */
   
           k=k+1;            k=k+1;
           if (j >= jmax) jmax=j;            if (j >= jmax) {
           else if (j <= jmin)jmin=j;              jmax=j;
               ijmax=i;
             }
             else if (j <= jmin){
               jmin=j;
               ijmin=i;
             }
           /*        if (j<10) printf("j=%d jmin=%d num=%d ",j,jmin,i); */            /*        if (j<10) printf("j=%d jmin=%d num=%d ",j,jmin,i); */
           /*printf("%d %lf %d %d %d\n", i,agev[mw[mi][i]][i],j,s[mw[mi][i]][i] ,s[mw[mi+1][i]][i]);*/            /*printf("%d %lf %d %d %d\n", i,agev[mw[mi][i]][i],j,s[mw[mi][i]][i] ,s[mw[mi+1][i]][i]);*/
           if(j<0){            if(j<0){
Line 2284  void  concatwav(int wav[], int **dh, int Line 2300  void  concatwav(int wav[], int **dh, int
     } /* end wave */      } /* end wave */
   }    }
   jmean=sum/k;    jmean=sum/k;
   printf("Delay (in months) between two waves Min=%d Max=%d Mean=%f\n\n ",jmin, jmax,jmean);    printf("Delay (in months) between two waves Min=%d (for indiviudal %ld) Max=%d (%ld) Mean=%f\n\n ",jmin, num[ijmin], jmax, num[ijmax], jmean);
   fprintf(ficlog,"Delay (in months) between two waves Min=%d Max=%d Mean=%f\n\n ",jmin, jmax,jmean);    fprintf(ficlog,"Delay (in months) between two waves Min=%d (for indiviudal %ld) Max=%d (%ld) Mean=%f\n\n ",jmin, ijmin, jmax, ijmax, jmean);
  }   }
   
 /*********** Tricode ****************************/  /*********** Tricode ****************************/
Line 3996  double gompertz(double x[]) Line 4012  double gompertz(double x[])
 {   { 
   double A,B,L=0.0,sump=0.,num=0.;    double A,B,L=0.0,sump=0.,num=0.;
   int i,n=0; /* n is the size of the sample */    int i,n=0; /* n is the size of the sample */
   
   for (i=0;i<=imx-1 ; i++) {    for (i=0;i<=imx-1 ; i++) {
     sump=sump+weight[i];      sump=sump+weight[i];
     /*    sump=sump+1;*/      /*    sump=sump+1;*/
Line 4008  double gompertz(double x[]) Line 4025  double gompertz(double x[])
   
   for (i=1;i<=imx ; i++)    for (i=1;i<=imx ; i++)
     {      {
       if (cens[i]==1 & wav[i]>1)        if (cens[i] == 1 && wav[i]>1)
         A=-x[1]/(x[2])*(exp(x[2]*(agecens[i]-agegomp))-exp(x[2]*(ageexmed[i]-agegomp)));          A=-x[1]/(x[2])*(exp(x[2]*(agecens[i]-agegomp))-exp(x[2]*(ageexmed[i]-agegomp)));
               
       if (cens[i]==0 & wav[i]>1)        if (cens[i] == 0 && wav[i]>1)
         A=-x[1]/(x[2])*(exp(x[2]*(agedc[i]-agegomp))-exp(x[2]*(ageexmed[i]-agegomp)))          A=-x[1]/(x[2])*(exp(x[2]*(agedc[i]-agegomp))-exp(x[2]*(ageexmed[i]-agegomp)))
              +log(x[1]/YEARM)+x[2]*(agedc[i]-agegomp)+log(YEARM);                 +log(x[1]/YEARM)+x[2]*(agedc[i]-agegomp)+log(YEARM);  
               
       if (wav[i]>1 & agecens[i]>15) {        /*if (wav[i] > 1 && agecens[i] > 15) {*/ /* ??? */
         if (wav[i] > 1 ) { /* ??? */
         L=L+A*weight[i];          L=L+A*weight[i];
         /*      printf("\ni=%d A=%f L=%lf x[1]=%lf x[2]=%lf ageex=%lf agecens=%lf cens=%d agedc=%lf weight=%lf\n",i,A,L,x[1],x[2],ageexmed[i]*12,agecens[i]*12,cens[i],agedc[i]*12,weight[i]);*/          /*      printf("\ni=%d A=%f L=%lf x[1]=%lf x[2]=%lf ageex=%lf agecens=%lf cens=%d agedc=%lf weight=%lf\n",i,A,L,x[1],x[2],ageexmed[i]*12,agecens[i]*12,cens[i],agedc[i]*12,weight[i]);*/
       }        }
Line 4084  int main(int argc, char *argv[]) Line 4102  int main(int argc, char *argv[])
 {  {
   int movingaverage(double ***probs, double bage,double fage, double ***mobaverage, int mobilav);    int movingaverage(double ***probs, double bage,double fage, double ***mobaverage, int mobilav);
   int i,j, k, n=MAXN,iter,m,size=100,cptcode, cptcod;    int i,j, k, n=MAXN,iter,m,size=100,cptcode, cptcod;
   int linei;    int linei, month, year,iout;
   int jj, ll, li, lj, lk, imk;    int jj, ll, li, lj, lk, imk;
   int numlinepar=0; /* Current linenumber of parameter file */    int numlinepar=0; /* Current linenumber of parameter file */
   int itimes;    int itimes;
Line 4492  int main(int argc, char *argv[]) Line 4510  int main(int argc, char *argv[])
   
   i=1;    i=1;
   linei=0;    linei=0;
   while ((fgets(line, MAXLINE, fic) != NULL) ||((i >= firstobs) && (i <=lastobs)))    {    while ((fgets(line, MAXLINE, fic) != NULL) &&((i >= firstobs) && (i <=lastobs)))    {
     linei=linei+1;      linei=linei+1;
     printf("IIIII= %d linei=%d\n",i,linei);  
     for(j=strlen(line); j>=0;j--){  /* Untabifies line */      for(j=strlen(line); j>=0;j--){  /* Untabifies line */
         if(line[j] == '\t')          if(line[j] == '\t')
           line[j] = ' ';            line[j] = ' ';
       }        }
       for(j=strlen(line)-1; (line[j]==' ')||(line[j]==10);j--){;};line[j+1]=0;  /* Trims blanks at end of line */        for(j=strlen(line)-1; (line[j]==' ')||(line[j]==10)||(line[j]==13);j--){
           ;
         };
         line[j+1]=0;  /* Trims blanks at end of line */
       if(line[0]=='#'){        if(line[0]=='#'){
         fprintf(ficlog,"Comment line\n%s\n",line);          fprintf(ficlog,"Comment line\n%s\n",line);
         printf("Comment line\n%s\n",line);          printf("Comment line\n%s\n",line);
Line 4517  int main(int argc, char *argv[]) Line 4537  int main(int argc, char *argv[])
         s[j][i]=lval;          s[j][i]=lval;
   
         strcpy(line,stra);          strcpy(line,stra);
         cutv(stra, strb,line,'/');  
         errno=0;  
         lval=strtol(strb,&endptr,10);   
         if( strb[0]=='\0' || (*endptr != '\0')){  
           printf("Error reading data around '%d'.at line number %ld %s for individual %d\nShould be a year of exam at wave %d.  Exiting.\n",lval, i,line,linei,j);  
           exit(1);  
         }  
         anint[j][i]=(double)(lval);   
   
         strcpy(line,stra);  
         cutv(stra, strb,line,' ');          cutv(stra, strb,line,' ');
         errno=0;          if(iout=sscanf(strb,"%d/%d",&month, &year) != 0){
         lval=strtol(strb,&endptr,10);           }
         if( strb[0]=='\0' || (*endptr != '\0')){          else  if(iout=sscanf(strb,".") != 0){
           printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a month of exam at wave %d.  Exiting.\n",lval, i,line, linei,j);            month=99;
             year=9999;
           }else{
             printf("Error reading data around '%s'.at line number %ld %s for individual %d\nShould be a year of exam at wave %d.  Exiting.\n",strb, i,line,linei,j);
           exit(1);            exit(1);
         }          }
         mint[j][i]=(double)(lval);           anint[j][i]= (double) year; 
           mint[j][i]= (double)month; 
         strcpy(line,stra);          strcpy(line,stra);
       }        } /* ENd Waves */
                   
       cutv(stra, strb,line,'/');         cutv(stra, strb,line,' '); 
       errno=0;        if(iout=sscanf(strb,"%d/%d",&month, &year) != 0){
       lval=strtol(strb,&endptr,10);         }
       if( strb[0]=='\0' || (*endptr != '\0')){        else  if(iout=sscanf(strb,".") != 0){
         printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a year of death.  Exiting.\n",lval, i,line,linei);          month=99;
           year=9999;
         }else{
           printf("Error reading data around '%s'.at line number %ld %s for individual %d\nShould be a year of exam at wave %d.  Exiting.\n",strb, i,line,linei,j);
         exit(1);          exit(1);
       }        }
       andc[i]=(double)(lval);         andc[i]=(double) year; 
         moisdc[i]=(double) month; 
       strcpy(line,stra);        strcpy(line,stra);
   
       cutv(stra, strb,line,' ');         cutv(stra, strb,line,' '); 
       errno=0;        if(iout=sscanf(strb,"%d/%d",&month, &year) != 0){
       lval=strtol(strb,&endptr,10);   
       if( strb[0]=='\0' || (*endptr != '\0')){  
         printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a month of death.  Exiting.\n",lval,i,line, linei);  
         exit(1);  
       }  
       moisdc[i]=(double)(lval);   
   
       strcpy(line,stra);  
       cutv(stra, strb,line,'/');   
       errno=0;  
       lval=strtol(strb,&endptr,10);   
       if( strb[0]=='\0' || (*endptr != '\0')){  
         printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a year of birth.  Exiting.\n",lval, i,line, linei);  
         exit(1);  
       }        }
       annais[i]=(double)(lval);        else  if(iout=sscanf(strb,".") != 0){
           month=99;
       strcpy(line,stra);          year=9999;
       cutv(stra, strb,line,' ');        }else{
       errno=0;          printf("Error reading data around '%s'.at line number %ld %s for individual %d\nShould be a year of exam at wave %d.  Exiting.\n",strb, i,line,linei,j);
       lval=strtol(strb,&endptr,10);   
       if( strb[0]=='\0' || (*endptr != '\0')){  
         printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a month of birth.  Exiting.\n",lval,i,line,linei);  
         exit(1);          exit(1);
       }        }
       moisnais[i]=(double)(lval);         annais[i]=(double)(year);
         moisnais[i]=(double)(month); 
       strcpy(line,stra);        strcpy(line,stra);
   
       cutv(stra, strb,line,' ');         cutv(stra, strb,line,' '); 
Line 4596  int main(int argc, char *argv[]) Line 4598  int main(int argc, char *argv[])
           printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a covar (meaning 0 for the reference or 1).  Exiting.\n",lval, i,line,linei);            printf("Error reading data around '%d' at line number %ld %s for individual %d\nShould be a covar (meaning 0 for the reference or 1).  Exiting.\n",lval, i,line,linei);
           exit(1);            exit(1);
         }          }
         if(lval <0 || lval >1){          if(lval <-1 || lval >1){
           printf("Error reading data around '%d' at line number %ld %s for individual %d\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,i,line,linei,j);            printf("Error reading data around '%d' at line number %ld %s for individual %d\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,i,line,linei,j);
           exit(1);            exit(1);
         }          }
Line 4611  int main(int argc, char *argv[]) Line 4613  int main(int argc, char *argv[])
       }        }
       else        else
         num[i]=atol(stra);          num[i]=atol(stra);
       printf ("num [i] %ld %d\n",i, num[i]);fflush(stdout);  
       /*if((s[2][i]==2) && (s[3][i]==-1)&&(s[4][i]==9)){        /*if((s[2][i]==2) && (s[3][i]==-1)&&(s[4][i]==9)){
         printf("%ld %.lf %.lf %.lf %.lf/%.lf %.lf/%.lf %.lf/%.lf %d %.lf/%.lf %d %.lf/%.lf %d %.lf/%.lf %d\n",num[i],(covar[1][i]), (covar[2][i]),weight[i], (moisnais[i]), (annais[i]), (moisdc[i]), (andc[i]), (mint[1][i]), (anint[1][i]), (s[1][i]),  (mint[2][i]), (anint[2][i]), (s[2][i]),  (mint[3][i]), (anint[3][i]), (s[3][i]),  (mint[4][i]), (anint[4][i]), (s[4][i])); ij=ij+1;}*/          printf("%ld %.lf %.lf %.lf %.lf/%.lf %.lf/%.lf %.lf/%.lf %d %.lf/%.lf %d %.lf/%.lf %d %.lf/%.lf %d\n",num[i],(covar[1][i]), (covar[2][i]),weight[i], (moisnais[i]), (annais[i]), (moisdc[i]), (andc[i]), (mint[1][i]), (anint[1][i]), (s[1][i]),  (mint[2][i]), (anint[2][i]), (s[2][i]),  (mint[3][i]), (anint[3][i]), (s[3][i]),  (mint[4][i]), (anint[4][i]), (s[4][i])); ij=ij+1;}*/
   
Line 4940  Interval (in months) between two waves: Line 4941  Interval (in months) between two waves:
   p=param[1][1]; /* *(*(*(param +1)+1)+0) */    p=param[1][1]; /* *(*(*(param +1)+1)+0) */
   
   globpr=0; /* To get the number ipmx of contributions and the sum of weights*/    globpr=0; /* To get the number ipmx of contributions and the sum of weights*/
   
   if (mle==-3){    if (mle==-3){
     ximort=matrix(1,NDIM,1,NDIM);      ximort=matrix(1,NDIM,1,NDIM);
     cens=ivector(1,n);      cens=ivector(1,n);
Line 4949  Interval (in months) between two waves: Line 4951  Interval (in months) between two waves:
     
     for (i=1; i<=imx; i++){      for (i=1; i<=imx; i++){
       dcwave[i]=-1;        dcwave[i]=-1;
       for (j=1; j<=lastpass; j++)        for (m=firstpass; m<=lastpass; m++)
         if (s[j][i]>nlstate) {          if (s[m][i]>nlstate) {
           dcwave[i]=j;            dcwave[i]=m;
           /*    printf("i=%d j=%d s=%d dcwave=%d\n",i,j, s[j][i],dcwave[i]);*/            /*    printf("i=%d j=%d s=%d dcwave=%d\n",i,j, s[j][i],dcwave[i]);*/
           break;            break;
         }          }
Line 4960  Interval (in months) between two waves: Line 4962  Interval (in months) between two waves:
     for (i=1; i<=imx; i++) {      for (i=1; i<=imx; i++) {
       if (wav[i]>0){        if (wav[i]>0){
         ageexmed[i]=agev[mw[1][i]][i];          ageexmed[i]=agev[mw[1][i]][i];
         j=wav[i];agecens[i]=1.;           j=wav[i];
         if (ageexmed[i]>1 & wav[i]>0) agecens[i]=agev[mw[j][i]][i];          agecens[i]=1.; 
         cens[i]=1;  
                   if (ageexmed[i]> 1 && wav[i] > 0){
         if (ageexmed[i]<1) cens[i]=-1;            agecens[i]=agev[mw[j][i]][i];
         if (agedc[i]< AGESUP & agedc[i]>1 & dcwave[i]>firstpass & dcwave[i]<=lastpass) cens[i]=0 ;            cens[i]= 1;
           }else if (ageexmed[i]< 1) 
             cens[i]= -1;
           if (agedc[i]< AGESUP && agedc[i]>1 && dcwave[i]>firstpass && dcwave[i]<=lastpass)
             cens[i]=0 ;
       }        }
       else cens[i]=-1;        else cens[i]=-1;
     }      }
Line 4974  Interval (in months) between two waves: Line 4980  Interval (in months) between two waves:
       for (j=1;j<=NDIM;j++)        for (j=1;j<=NDIM;j++)
         ximort[i][j]=(i == j ? 1.0 : 0.0);          ximort[i][j]=(i == j ? 1.0 : 0.0);
     }      }
       
     p[1]=0.1; p[2]=0.1;      p[1]=0.1; p[NDIM]=0.1;
     /*printf("%lf %lf", p[1], p[2]);*/      /*printf("%lf %lf", p[1], p[2]);*/
           
           
   printf("Powell\n");  fprintf(ficlog,"Powell\n");      printf("Powell\n");  fprintf(ficlog,"Powell\n");
   strcpy(filerespow,"pow-mort");       strcpy(filerespow,"pow-mort"); 
   strcat(filerespow,fileres);      strcat(filerespow,fileres);
   if((ficrespow=fopen(filerespow,"w"))==NULL) {      if((ficrespow=fopen(filerespow,"w"))==NULL) {
     printf("Problem with resultfile: %s\n", filerespow);        printf("Problem with resultfile: %s\n", filerespow);
     fprintf(ficlog,"Problem with resultfile: %s\n", filerespow);        fprintf(ficlog,"Problem with resultfile: %s\n", filerespow);
   }      }
   fprintf(ficrespow,"# Powell\n# iter -2*LL");      fprintf(ficrespow,"# Powell\n# iter -2*LL");
   /*  for (i=1;i<=nlstate;i++)      /*  for (i=1;i<=nlstate;i++)
     for(j=1;j<=nlstate+ndeath;j++)          for(j=1;j<=nlstate+ndeath;j++)
       if(j!=i)fprintf(ficrespow," p%1d%1d",i,j);          if(j!=i)fprintf(ficrespow," p%1d%1d",i,j);
   */      */
   fprintf(ficrespow,"\n");      fprintf(ficrespow,"\n");
       
     powell(p,ximort,NDIM,ftol,&iter,&fret,gompertz);      powell(p,ximort,NDIM,ftol,&iter,&fret,gompertz);
     fclose(ficrespow);      fclose(ficrespow);
           
     hesscov(matcov, p, NDIM,delti, 1e-4, gompertz);       hesscov(matcov, p, NDIM, delti, 1e-4, gompertz); 
   
     for(i=1; i <=NDIM; i++)      for(i=1; i <=NDIM; i++)
       for(j=i+1;j<=NDIM;j++)        for(j=i+1;j<=NDIM;j++)
Line 5014  Interval (in months) between two waves: Line 5020  Interval (in months) between two waves:
     for (i=1;i<=NDIM;i++)       for (i=1;i<=NDIM;i++) 
       printf("%f [%f ; %f]\n",p[i],p[i]-2*sqrt(matcov[i][i]),p[i]+2*sqrt(matcov[i][i]));        printf("%f [%f ; %f]\n",p[i],p[i]-2*sqrt(matcov[i][i]),p[i]+2*sqrt(matcov[i][i]));
   
 lsurv=vector(1,AGESUP);      lsurv=vector(1,AGESUP);
     lpop=vector(1,AGESUP);      lpop=vector(1,AGESUP);
     tpop=vector(1,AGESUP);      tpop=vector(1,AGESUP);
     lsurv[agegomp]=100000;      lsurv[agegomp]=100000;
          
      for (k=agegomp;k<=AGESUP;k++) {      for (k=agegomp;k<=AGESUP;k++) {
       agemortsup=k;        agemortsup=k;
       if (p[1]*exp(p[2]*(k-agegomp))>1) break;        if (p[1]*exp(p[2]*(k-agegomp))>1) break;
     }      }
          
       for (k=agegomp;k<agemortsup;k++)      for (k=agegomp;k<agemortsup;k++)
       lsurv[k+1]=lsurv[k]-lsurv[k]*(p[1]*exp(p[2]*(k-agegomp)));        lsurv[k+1]=lsurv[k]-lsurv[k]*(p[1]*exp(p[2]*(k-agegomp)));
       
     for (k=agegomp;k<agemortsup;k++){      for (k=agegomp;k<agemortsup;k++){
       lpop[k]=(lsurv[k]+lsurv[k+1])/2.;        lpop[k]=(lsurv[k]+lsurv[k+1])/2.;
       sumlpop=sumlpop+lpop[k];        sumlpop=sumlpop+lpop[k];
     }      }
       
  tpop[agegomp]=sumlpop;      tpop[agegomp]=sumlpop;
     for (k=agegomp;k<(agemortsup-3);k++){      for (k=agegomp;k<(agemortsup-3);k++){
       /*  tpop[k+1]=2;*/        /*  tpop[k+1]=2;*/
       tpop[k+1]=tpop[k]-lpop[k];        tpop[k+1]=tpop[k]-lpop[k];
        }      }
          
          
        printf("\nAge   lx     qx    dx    Lx     Tx     e(x)\n");      printf("\nAge   lx     qx    dx    Lx     Tx     e(x)\n");
     for (k=agegomp;k<(agemortsup-2);k++)       for (k=agegomp;k<(agemortsup-2);k++) 
       printf("%d %.0lf %lf %.0lf %.0lf %.0lf %lf\n",k,lsurv[k],p[1]*exp(p[2]*(k-agegomp)),(p[1]*exp(p[2]*(k-agegomp)))*lsurv[k],lpop[k],tpop[k],tpop[k]/lsurv[k]);        printf("%d %.0lf %lf %.0lf %.0lf %.0lf %lf\n",k,lsurv[k],p[1]*exp(p[2]*(k-agegomp)),(p[1]*exp(p[2]*(k-agegomp)))*lsurv[k],lpop[k],tpop[k],tpop[k]/lsurv[k]);
       
       
     replace_back_to_slash(pathc,path); /* Even gnuplot wants a / */      replace_back_to_slash(pathc,path); /* Even gnuplot wants a / */
     printinggnuplotmort(fileres, optionfilefiname,ageminpar,agemaxpar,fage, pathc,p);      printinggnuplotmort(fileres, optionfilefiname,ageminpar,agemaxpar,fage, pathc,p);
           
     printinghtmlmort(fileres,title,datafile, firstpass, lastpass, \      printinghtmlmort(fileres,title,datafile, firstpass, lastpass, \
                      stepm, weightopt,\                       stepm, weightopt,\
                      model,imx,p,matcov,agemortsup);                       model,imx,p,matcov,agemortsup);
       
     free_vector(lsurv,1,AGESUP);      free_vector(lsurv,1,AGESUP);
     free_vector(lpop,1,AGESUP);      free_vector(lpop,1,AGESUP);
     free_vector(tpop,1,AGESUP);      free_vector(tpop,1,AGESUP);
   } /* Endof if mle==-3 */    } /* Endof if mle==-3 */
     
   else{ /* For mle >=1 */    else{ /* For mle >=1 */
       
     likelione(ficres, p, npar, nlstate, &globpr, &ipmx, &sw, &fretone, funcone); /* Prints the contributions to the likelihood */      likelione(ficres, p, npar, nlstate, &globpr, &ipmx, &sw, &fretone, funcone); /* Prints the contributions to the likelihood */

Removed from v.1.109  
changed lines
  Added in v.1.110


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>