@@ -32,8 +32,16 @@ HighsStatus solveLpHiPdlp(const HighsOptions& options, HighsTimer& timer,
3232 resetModelStatusAndHighsInfo (model_status, highs_info);
3333
3434 std::string log_filename = " " ;
35- LogLevel log_level = LogLevel::kInfo ;
36-
35+ LogLevel log_level;
36+ if (options.log_dev_level == kHighsLogDevLevelInfo ) {
37+ log_level = LogLevel::kInfo ;
38+ } else if (options.log_dev_level == kHighsLogDevLevelDetailed ) {
39+ log_level = LogLevel::kVerbose ;
40+ } else if (options.log_dev_level == kHighsLogDevLevelVerbose ) {
41+ log_level = LogLevel::kDebug ;
42+ } else {
43+ log_level = LogLevel::kNone ;
44+ }
3745 // --- Initialize Logger ---
3846 Logger logger (log_level);
3947 if (!log_filename.empty ()) logger.set_log_file (log_filename);
@@ -77,8 +85,10 @@ HighsStatus solveLpHiPdlp(const HighsOptions& options, HighsTimer& timer,
7785 break ;
7886 }
7987 case TerminationStatus::TIMEOUT: {
80- assert (111 == 444 );
81- model_status = HighsModelStatus::kTimeLimit ;
88+ // ToDo IterationLimit termination needs to be handled separately
89+ model_status = highs_info.pdlp_iteration_count >= options.pdlp_iteration_limit
90+ ? HighsModelStatus::kIterationLimit
91+ : HighsModelStatus::kTimeLimit ;
8292 break ;
8393 }
8494 case TerminationStatus::WARNING:
@@ -108,10 +118,7 @@ HighsStatus solveLpHiPdlp(const HighsOptions& options, HighsTimer& timer,
108118void getHiPpdlpParamsFromOptions (const HighsOptions& options, HighsTimer& timer, PrimalDualParams& params) {
109119 params.initialise ();
110120 // params.eta = 0; Not set in parse_options_file
111- // params.omega = 0; Not set in parse_opions_file
112- //
113- // Is params.tolerance for primal and dual feasibility, and
114- // optimality?
121+ // params.omega = 0; Not set in parse_options_file
115122 params.tolerance = options.pdlp_optimality_tolerance ;
116123 if (options.kkt_tolerance != kDefaultKktTolerance ) {
117124 params.tolerance = options.kkt_tolerance ;
@@ -139,8 +146,8 @@ void getHiPpdlpParamsFromOptions(const HighsOptions& options, HighsTimer& timer,
139146 params.use_l2_scaling = options.pdlp_scaling_mode & kPdlpScalingL2 ;
140147 }
141148 params.ruiz_iterations = options.pdlp_ruiz_iterations ;
142- // params.ruiz_norm = INFINITY; Not set in parse_opions_file
143- // params.pc_alpha = 1.0; Not set in parse_opions_file
149+ // params.ruiz_norm = INFINITY; Not set in parse_options_file
150+ // params.pc_alpha = 1.0; Not set in parse_options_file
144151
145152 // Restart strategy maps 0/1/2 to RestartStrategy
146153 params.restart_strategy = RestartStrategy::NO_RESTART;
@@ -152,8 +159,8 @@ void getHiPpdlpParamsFromOptions(const HighsOptions& options, HighsTimer& timer,
152159 params.restart_strategy = RestartStrategy::ADAPTIVE_RESTART;
153160 }
154161 }
155- // params.fixed_restart_interval = 0; Not set in parse_opions_file
156- // params.use_halpern_restart = false; Not set in parse_opions_file
162+ // params.fixed_restart_interval = 0; Not set in parse_options_file
163+ // params.use_halpern_restart = false; Not set in parse_options_file
157164
158165 params.step_size_strategy = StepSizeStrategy::FIXED;
159166 if ((options.pdlp_features_off & kPdlpAdaptiveStepSizeOff ) == 0 ) {
@@ -164,8 +171,8 @@ void getHiPpdlpParamsFromOptions(const HighsOptions& options, HighsTimer& timer,
164171 params.step_size_strategy = StepSizeStrategy::MALITSKY_POCK;
165172 }
166173 }
167- // params.malitsky_pock_params.initialise(); Not set in parse_opions_file
168- // params.adaptive_linesearch_params.initialise(); Not set in parse_opions_file
174+ // params.malitsky_pock_params.initialise(); Not set in parse_options_file
175+ // params.adaptive_linesearch_params.initialise(); Not set in parse_options_file
169176
170177}
171178
0 commit comments