void cStream::runBenchmarkTuned() { initializeVariables(); runChecks(); runTunedTests(); checkSTREAMresults(); calculateBandwidthResults(); outputSummary(); }; // void cStream::runBenchmarkTuned()
void flushSummaryBlocks(struct hash *componentHash, FILE *f) /* flush any pending summary blocks */ { struct mafSummary *ms; struct hashCookie hc = hashFirst(componentHash); while ((ms = (struct mafSummary *)hashNextVal(&hc)) != NULL) { outputSummary(f, ms); } }
//Provided main function from the Stegman Textbook for this course from page 232 int main (void) { char code; double amount, service, balance; double amtCheck, amtDeposit, openBalance, closeBalance; int numCheck, numDeposit; if (!(fpIn = fopen("account.txt", "r"))) { printf("account.txt could not be opened for input."); exit(1); } if (!(fpOut = fopen("csis.txt", "w"))) { printf("csis.text could not be opened for output"); exit(1); } amount = 0.0; service = 0.0; balance = 0.0; amtCheck = 0.0; amtDeposit = 0.0; openBalance = 0.0; closeBalance = 0.0; numCheck = 0; numDeposit = 0; outputHeaders(); while (!feof(fpIn)) { fscanf(fpIn, "%c %lf\n", &code, &amount); if (code == 'I') { initialBalance(amount, &balance, &service, &openBalance); } else if (code == 'D') { deposit(amount, &balance, &service, &numDeposit, &amtDeposit); } else { check(amount, &balance, &service, &numCheck, &amtCheck); } } closeBalance = balance - service; outputSummary(numDeposit, amtDeposit, numCheck, amtCheck, openBalance, service, closeBalance); fclose(fpIn); fclose(fpOut); return 0; }
long processMaf(struct mafAli *maf, struct hash *componentHash, FILE *f, struct mafFile *mf, char *fileName) /* Compute scores for each pairwise component in the maf and output to .tab file */ { struct mafComp *mc = NULL, *nextMc = NULL; struct mafSummary *ms, *msPending; struct mafAli pairMaf; long componentCount = 0; struct mafComp *mcMaster = mafMaster(maf, mf, fileName); struct mafComp *oldMasterNext = mcMaster->next; char *e, *chrom; char src[256]; strcpy(src, mcMaster->src); chrom = chopPrefix(src); for (mc = maf->components; mc != NULL; mc = nextMc) { nextMc = mc->next; if (sameString(mcMaster->src, mc->src) || mc->size == 0) continue; /* create maf summary for this alignment component */ AllocVar(ms); ms->chrom = cloneString(chrom); /* both MAF and BED format define chromStart as 0-based */ ms->chromStart = mcMaster->start; /* BED chromEnd is start+size */ ms->chromEnd = mcMaster->start + mcMaster->size; ms->src = cloneString(mc->src); /* remove trailing components (following initial .) to src name */ if ((e = strchr(ms->src, '.')) != NULL) *e = 0; /* construct pairwise maf for scoring */ ZeroVar(&pairMaf); pairMaf.textSize = maf->textSize; pairMaf.components = mcMaster; mcMaster->next = mc; mc->next = NULL; ms->score = scorePairwise(&pairMaf); ms->leftStatus[0] = mc->leftStatus; ms->rightStatus[0] = mc->rightStatus; /* restore component links to allow memory recovery */ mcMaster->next = oldMasterNext; mc->next = nextMc; /* output to .tab file, or save for merging with another block * if this one is too small */ /* handle pending alignment block for this species, if any */ if ((msPending = (struct mafSummary *) hashFindVal(componentHash, ms->src)) != NULL) { /* there is a pending alignment block */ /* either merge it with the current block, or output it */ if (sameString(ms->chrom, msPending->chrom) && (ms->chromStart+1 - msPending->chromEnd < mergeGap)) { /* merge pending block with current */ ms->score = mergeScores(msPending, ms); ms->chromStart = msPending->chromStart; ms->leftStatus[0] = msPending->leftStatus[0]; ms->rightStatus[0] = ms->rightStatus[0]; } else outputSummary(f, msPending); hashRemove(componentHash, msPending->src); mafSummaryFree(&msPending); } /* handle current alignment block (possibly merged) */ if (ms->chromEnd - ms->chromStart > minSize) { /* current block is big enough to output */ outputSummary(f, ms); mafSummaryFree(&ms); } else hashAdd(componentHash, ms->src, ms); componentCount++; } return componentCount; }