File:  [Local Repository] / imach / src / hpijx.h
Revision 1.1: download - view: text, annotated - select for diffs
Tue Sep 2 11:19:57 2014 UTC (9 years, 8 months ago) by brouard
Branches: MAIN
CVS tags: HEAD
*** empty log message ***

    /*------------- h Pij x at various ages ------------*/
  
    strcpy(filerespij,"pij");  strcat(filerespij,fileres);
    if((ficrespij=fopen(filerespij,"w"))==NULL) {
      printf("Problem with Pij resultfile: %s\n", filerespij);goto end;
      fprintf(ficlog,"Problem with Pij resultfile: %s\n", filerespij);goto end;
    }
    printf("Computing pij: result on file '%s' \n", filerespij);
    fprintf(ficlog,"Computing pij: result on file '%s' \n", filerespij);
  
    stepsize=(int) (stepm+YEARM-1)/YEARM;
    /*if (stepm<=24) stepsize=2;*/

    agelim=AGESUP;
    hstepm=stepsize*YEARM; /* Every year of age */
    hstepm=hstepm/stepm; /* Typically 2 years, = 2/6 months = 4 */ 

    /* hstepm=1;   aff par mois*/
    pstamp(ficrespij);
    fprintf(ficrespij,"#****** h Pij x Probability to be in state j at age x+h being in i at x ");
    i1=pow(2,cptcoveff);
    for(cptcov=1,k=0;cptcov<=i1;cptcov++){
      /*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*/
	k=k+1;
	fprintf(ficrespij,"\n#****** ");
	for(j=1;j<=cptcoveff;j++) 
	  fprintf(ficrespij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtab[k][j]]);
	fprintf(ficrespij,"******\n");
	
	for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */
	  nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ 
	  nhstepm = nhstepm/hstepm; /* Typically 40/4=10 */

	  /*	  nhstepm=nhstepm*YEARM; aff par mois*/

	  p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
	  oldm=oldms;savm=savms;
	  hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k);  
	  fprintf(ficrespij,"# Cov Agex agex+h hpijx with i,j=");
	  for(i=1; i<=nlstate;i++)
	    for(j=1; j<=nlstate+ndeath;j++)
	      fprintf(ficrespij," %1d-%1d",i,j);
	  fprintf(ficrespij,"\n");
	  for (h=0; h<=nhstepm; h++){
	    fprintf(ficrespij,"%d %3.f %3.f",k,agedeb, agedeb+ h*hstepm/YEARM*stepm );
	    for(i=1; i<=nlstate;i++)
	      for(j=1; j<=nlstate+ndeath;j++)
		fprintf(ficrespij," %.5f", p3mat[i][j][h]);
	    fprintf(ficrespij,"\n");
	  }
	  free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
	  fprintf(ficrespij,"\n");
	}
      /*}*/
    }

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