| 2531 | } |
| 2532 | |
| 2533 | void fxReportFrequency(txMachine* the) |
| 2534 | { |
| 2535 | txFrequency frequencies[XS_CODE_COUNT]; |
| 2536 | txU1 code; |
| 2537 | txNumber exitSum = 0; |
| 2538 | txNumber frequencySum = 0; |
| 2539 | for (code = 0; code < XS_CODE_COUNT; code++) { |
| 2540 | frequencies[code].exit = the->exits[code]; |
| 2541 | frequencies[code].frequency = the->frequencies[code]; |
| 2542 | frequencies[code].code = code; |
| 2543 | exitSum += the->exits[code]; |
| 2544 | frequencySum += the->frequencies[code]; |
| 2545 | } |
| 2546 | c_qsort(frequencies, XS_CODE_COUNT, sizeof(txFrequency), fxCompareFrequency); |
| 2547 | fprintf(stderr, "Frequencies %10.0lf\n", frequencySum); |
| 2548 | for (code = 0; code < XS_CODE_COUNT; code++) { |
| 2549 | if (!frequencies[code].frequency) |
| 2550 | break; |
| 2551 | fprintf(stderr, "%24s %10.3lf%%\n", |
| 2552 | gxCodeNames[frequencies[code].code], |
| 2553 | ((double)(frequencies[code].frequency) * 100.0) / frequencySum); |
| 2554 | } |
| 2555 | c_qsort(frequencies, XS_CODE_COUNT, sizeof(txFrequency), fxCompareExit); |
| 2556 | fprintf(stderr, "Exits %10.0lf\n", exitSum); |
| 2557 | for (code = 0; code < XS_CODE_COUNT; code++) { |
| 2558 | if (!frequencies[code].exit) |
| 2559 | break; |
| 2560 | fprintf(stderr, "%24s%10.3lf%%\n", |
| 2561 | gxCodeNames[frequencies[code].code], |
| 2562 | ((double)(frequencies[code].exit) * 100.0) / exitSum); |
| 2563 | } |
| 2564 | } |
| 2565 | #endif |
| 2566 | |