Primal: primal_delta - 0 dual_step - ThDu (theta_dual) - dual infeasibility from CHUZC primal_step - ThPr (theta_primal_ - primal step from CHUZR Dual: primal_delta - DlPr (delta_primal) - primal infeasibility from CHUZR dual_step - ThDu (theta_dual) - dual step from CHUZC primal_step - ThPr (theta_primal) - step to bound of leaving variable after pivoting
| 1444 | // * primal_step - ThPr (theta_primal) - step to bound of leaving variable |
| 1445 | // after pivoting |
| 1446 | void HighsSimplexAnalysis::reportIterationData(const bool header) { |
| 1447 | if (header) { |
| 1448 | *analysis_log << highsFormatToString( |
| 1449 | " EnC LvC LvR ThDu ThPr " |
| 1450 | "DlPr NumCk Aa"); |
| 1451 | } else if (pivotal_row_index >= 0) { |
| 1452 | *analysis_log << highsFormatToString( |
| 1453 | " %7" HIGHSINT_FORMAT " %7" HIGHSINT_FORMAT " %7" HIGHSINT_FORMAT, |
| 1454 | entering_variable, leaving_variable, pivotal_row_index); |
| 1455 | if (entering_variable >= 0) { |
| 1456 | *analysis_log << highsFormatToString( |
| 1457 | " %11.4g %11.4g %11.4g %11.4g %11.4g", dual_step, primal_step, |
| 1458 | primal_delta, numerical_trouble, pivot_value_from_column); |
| 1459 | } else { |
| 1460 | // Unboundedness in dual simplex |
| 1461 | assert(dualAlgorithm()); |
| 1462 | *analysis_log << highsFormatToString( |
| 1463 | " %11.4g ", |
| 1464 | primal_delta); |
| 1465 | } |
| 1466 | } else { |
| 1467 | // Bound swap in primal simplex |
| 1468 | assert(!dualAlgorithm()); |
| 1469 | *analysis_log << highsFormatToString( |
| 1470 | " %7" HIGHSINT_FORMAT " %7" HIGHSINT_FORMAT " %7" HIGHSINT_FORMAT |
| 1471 | " %11.4g %11.4g ", |
| 1472 | entering_variable, leaving_variable, pivotal_row_index, dual_step, |
| 1473 | primal_step); |
| 1474 | } |
| 1475 | } |
| 1476 | |
| 1477 | void HighsSimplexAnalysis::reportRunTime(const bool header, |
| 1478 | const double run_time) { |
nothing calls this directly
no test coverage detected