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
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