MCPcopy Create free account
hub / github.com/ERGO-Code/HiGHS / summaryReport

Method summaryReport

highs/simplex/HighsSimplexAnalysis.cpp:776–1141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

774}
775
776void HighsSimplexAnalysis::summaryReport() {
777 assert(analyse_simplex_summary_data);
778 HighsInt AnIterNumIter = simplex_iteration_count - AnIterIt0;
779 if (AnIterNumIter <= 0) return;
780 printf("\nAnalysis of %" HIGHSINT_FORMAT " iterations (%" HIGHSINT_FORMAT
781 " to %" HIGHSINT_FORMAT ")\n",
782 AnIterNumIter, AnIterIt0 + 1, simplex_iteration_count);
783 if (AnIterNumIter <= 0) return;
784 HighsInt lc_EdWtNumIter;
785 lc_EdWtNumIter = AnIterNumEdWtIt[(HighsInt)EdgeWeightMode::kSteepestEdge];
786 if (lc_EdWtNumIter > 0)
787 printf("DSE for %12" HIGHSINT_FORMAT " (%3" HIGHSINT_FORMAT
788 "%%) iterations\n",
789 lc_EdWtNumIter, (100 * lc_EdWtNumIter) / AnIterNumIter);
790 lc_EdWtNumIter = AnIterNumEdWtIt[(HighsInt)EdgeWeightMode::kDevex];
791 if (lc_EdWtNumIter > 0)
792 printf("Dvx for %12" HIGHSINT_FORMAT " (%3" HIGHSINT_FORMAT
793 "%%) iterations\n",
794 lc_EdWtNumIter, (100 * lc_EdWtNumIter) / AnIterNumIter);
795 lc_EdWtNumIter = AnIterNumEdWtIt[(HighsInt)EdgeWeightMode::kDantzig];
796 if (lc_EdWtNumIter > 0)
797 printf("Dan for %12" HIGHSINT_FORMAT " (%3" HIGHSINT_FORMAT
798 "%%) iterations\n",
799 lc_EdWtNumIter, (100 * lc_EdWtNumIter) / AnIterNumIter);
800 for (HighsInt k = 0; k < kNumSimplexNlaOperation; k++) {
801 AnIterOpRec& AnIter = AnIterOp[k];
802 HighsInt lcNumCa = AnIter.AnIterOpNumCa;
803 printf("\n%-10s performed %" HIGHSINT_FORMAT " times\n",
804 AnIter.AnIterOpName.c_str(), AnIter.AnIterOpNumCa);
805 if (lcNumCa > 0) {
806 HighsInt lcHyperOp = AnIter.AnIterOpNumHyperOp;
807 HighsInt lcHyperRs = AnIter.AnIterOpNumHyperRs;
808 HighsInt pctHyperOp = (100 * lcHyperOp) / lcNumCa;
809 HighsInt pctHyperRs = (100 * lcHyperRs) / lcNumCa;
810 double lcRsDensity =
811 pow(10.0, AnIter.AnIterOpSumLog10RsDensity / lcNumCa);
812 HighsInt lcAnIterOpRsDim = AnIter.AnIterOpRsDim;
813 HighsInt lcNumNNz = lcRsDensity * lcAnIterOpRsDim;
814 printf("%12" HIGHSINT_FORMAT
815 " hyper-sparse operations (%3" HIGHSINT_FORMAT "%%)\n",
816 lcHyperOp, pctHyperOp);
817 printf("%12" HIGHSINT_FORMAT
818 " hyper-sparse results (%3" HIGHSINT_FORMAT "%%)\n",
819 lcHyperRs, pctHyperRs);
820 printf("%12g density of result (%" HIGHSINT_FORMAT " / %" HIGHSINT_FORMAT
821 " nonzeros)\n",
822 lcRsDensity, lcNumNNz, lcAnIterOpRsDim);
823 logValueDistribution(log_options, AnIter.AnIterOp_density,
824 AnIter.AnIterOpRsDim);
825 }
826 }
827 HighsInt NumInvert = 0;
828
829 HighsInt last_rebuild_reason = kRebuildReasonCount - 1;
830 for (HighsInt k = 1; k <= last_rebuild_reason; k++)
831 NumInvert += AnIterNumInvert[k];
832 if (NumInvert > 0) {
833 HighsInt lcNumInvert = 0;

Callers 1

solveMethod · 0.80

Calls 4

logValueDistributionFunction · 0.85
highsLogDevFunction · 0.85
c_strMethod · 0.80
getWallTimeMethod · 0.80

Tested by

no test coverage detected