Beispiel #1
0
void
free_t_RY (void)
{
  int li;
  free_genealogy_weights (&holdallgweight_t_RY);
  for (li = 0; li < nloci; li++)
  {
    free_genealogy_weights (&holdgweight_t_RY[li]);
  }
  free_probcalc (&holdallpcalc_t_RY);
  orig2d_free2D ((void **) skipflag, nloci);

}                               // free_changet_RY
Beispiel #2
0
void
printautoctable (FILE * outto, int numautoc, struct autoc **ac, char **ac_str,
                 const char *printacstring/*, int step*/)
{
  int i, j;
  double **acvals;
  int numacprint;
  char numstr[20];

  /* 4/9/09  change output for stdout so it only does tables for L[P] and split times, not tmrcas 
   the total number of autoc tables for stdout will then be npops */
  //numacprint = (outto == stdout) ? IMIN (numautoc, IFSTDOUTMAXSHOW) : numautoc;
  if (strcmp (printacstring, "Population Assignment Autocorrelations and Effective Sample Size Estimates") == 0)
  {
    numacprint = (outto == stdout) ? IMIN (nloci, IFSTDOUTMAXSHOW) : numautoc;
  }
  else
  {
    numacprint = (outto == stdout) ? IMIN (numautoc, IFSTDOUTMAXSHOW) : numautoc;
  }
  acvals = orig2d_alloc2Ddouble (numacprint, AUTOCTERMS);
  fprintf (outto, "\n%s\n", printacstring);
  for (i = 0; i < (int) strlen (printacstring); i++)
    fprintf (outto, "-");
  fprintf (outto, "\n");
  fprintf (outto,
           "   # Steps Between Values and Autocorrelation Estimates \n");
  fprintf (outto, "\tSteps ");
  for (j = 0; j < numacprint; j++)
    fprintf (outto, "\t %s", ac_str[j]);
  fprintf (outto, "\n");
  for (i = 0; i < AUTOCTERMS; i++)
  {
    if (ac[0][i].cov.n > (AUTOCCUTOFF / AUTOCSTEPSCALAR))
    {
      if (((float) autoc_checkstep[i] * AUTOCSTEPSCALAR) > 1e4)
      {
        sprintf (&numstr[0], "%.1e",
                 (float) autoc_checkstep[i] * AUTOCSTEPSCALAR);
        fprintf (outto, "\t%s", shorten_e_num (&numstr[0]));
        //fprintf (outto, "\t%.1e", (float) autoc_checkstep[i]*AUTOCSTEPSCALAR);
      }
      else
      {
        fprintf (outto, "\t%d", autoc_checkstep[i] * AUTOCSTEPSCALAR);
      }
      for (j = 0; j < numacprint; j++)
      {
        acvals[j][i] = printautocvalue (outto, &ac[j][i]);
      }
      fprintf (outto, "\n");
    }
  }
  fprintf (outto, "\tESS");

/* integrate over autocorrelations values for values > 0.03 */

  for (j = 0; j < numacprint; j++)
    integrate_autoc (outto, ac[j], acvals[j]/*, step*/);
  fprintf (outto, "\n");
  orig2d_free2D ((void **) acvals, numacprint);
}                               //printautoctable