Skip to content

Commit 1d6bb46

Browse files
committed
Corrected use of bounds_measure_ and costs_measure_; removed kTerminationLogging code
1 parent a5a91cc commit 1d6bb46

File tree

3 files changed

+7
-28
lines changed

3 files changed

+7
-28
lines changed

highs/ipm/ipx/ipm.cc

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -821,8 +821,7 @@ void IPM::PrintHeader() {
821821
std::stringstream h_logging_stream;
822822
h_logging_stream.str(std::string());
823823
h_logging_stream
824-
<< (kTerminationLogging ? "\n" : "")
825-
<< " " << Format("Iter", 4)
824+
<< " " << Format("Iter", 4)
826825
<< " " << Format("primal obj", 15)
827826
<< " " << Format("dual obj", 15)
828827
<< " " << Format("pinf", 9)
@@ -844,16 +843,15 @@ void IPM::PrintHeader() {
844843
void IPM::PrintOutput() {
845844
const bool ipm_optimal = iterate_->feasible() && iterate_->optimal();
846845

847-
if (kTerminationLogging) PrintHeader();
848846
double logging_pobj = iterate_->pobjective_after_postproc();
849847
double logging_dobj = iterate_->dobjective_after_postproc();
850848
double logging_presidual = iterate_->presidual();
851849
double logging_dresidual = iterate_->dresidual();
852850

853851
// Now logging relative primal and dual infeasibility, and also
854852
// the relative primal dual objective gap
855-
logging_presidual /= (1.0 + iterate_->bounds_measure_);
856-
logging_dresidual /= (1.0 + iterate_->costs_measure_);
853+
logging_presidual /= iterate_->bounds_measure_;
854+
logging_dresidual /= iterate_->costs_measure_;
857855
double logging_gap = std::abs(logging_pobj - logging_dobj) /
858856
(1.0+0.5 *std::fabs(logging_pobj + logging_dobj));
859857

highs/ipm/ipx/iterate.cc

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -222,38 +222,21 @@ double Iterate::mu_max() const { Evaluate(); return mu_max_; }
222222

223223
bool Iterate::feasible() const {
224224
Evaluate();
225-
const double rel_presidual = presidual_ / bounds_measure_;
226-
const double rel_dresidual = dresidual_ / costs_measure_;
227-
const bool primal_feasible = presidual_ <= feasibility_tol_ * (bounds_measure_);
228-
const bool dual_feasible = dresidual_ <= feasibility_tol_ * (costs_measure_);
225+
const bool primal_feasible = presidual_ <= feasibility_tol_ * bounds_measure_;
226+
const bool dual_feasible = dresidual_ <= feasibility_tol_ * costs_measure_;
229227
const bool is_feasible = primal_feasible && dual_feasible;
230-
if (kTerminationLogging) {
231-
printf("\nIterate::feasible presidual_ = %11.4g; bounds_measure = %11.4g; "
232-
"rel_presidual = %11.4g; feasibility_tol = %11.4g: primal_feasible = %d\n",
233-
presidual_, bounds_measure_, rel_presidual, feasibility_tol_, primal_feasible);
234-
printf("Iterate::feasible dresidual_ = %11.4g; costs_measure = %11.4g; "
235-
"rel_dresidual = %11.4g; feasibility_tol = %11.4g: dual_feasible = %d\n",
236-
dresidual_, costs_measure_, rel_dresidual, feasibility_tol_, dual_feasible);
237-
}
238228
return is_feasible;
239229
}
240230

241231
bool Iterate::optimal() const {
242232
Evaluate();
243233
double pobj = pobjective_after_postproc();
244234
double dobj = dobjective_after_postproc();
245-
double obj = 0.5 * (pobj + dobj);
235+
double ave_obj = 0.5 * (pobj + dobj);
246236
double gap = pobj - dobj;
247237
const double abs_gap = std::abs(gap);
248-
const double obj_measure = 1.0+std::abs(obj);
238+
const double obj_measure = 1.0+std::abs(ave_obj);
249239
const bool is_optimal = abs_gap <= optimality_tol_ * obj_measure;
250-
if (kTerminationLogging) {
251-
const double rel_gap = abs_gap / obj_measure;
252-
printf("Iterate::optimal abs_gap = %11.4g;"
253-
" obj_measure = %11.4g; rel_gap = %11.4g;"
254-
" optimality_tol = %11.4g: optimal = %d\n",
255-
abs_gap, obj_measure, rel_gap, optimality_tol_, is_optimal);
256-
}
257240
return is_optimal;
258241
}
259242

highs/ipm/ipx/utils.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
#include <vector>
55
#include "ipm/ipx/ipx_internal.h"
66

7-
const bool kTerminationLogging = false;
8-
97
namespace ipx {
108

119
bool AllFinite(const Vector& x);

0 commit comments

Comments
 (0)