@@ -26,7 +26,7 @@ namespace uno {
2626 this ->initial_point .resize (problem.number_variables );
2727 regularization_strategy.initialize_memory (problem, hessian_model);
2828 this ->LP_direction = Direction (problem.number_variables , problem.number_constraints );
29- this ->LP_solver ->initialize_memory (problem, this -> LP_hessian_model , regularization_strategy);
29+ this ->LP_solver ->initialize_memory (problem, ZeroHessian () , regularization_strategy);
3030 this ->QP_solver ->initialize_memory (problem, hessian_model, regularization_strategy);
3131 }
3232
@@ -52,6 +52,7 @@ namespace uno {
5252 this ->solve_LP (statistics, problem, current_iterate, current_multipliers, this ->LP_direction , subproblem_layer,
5353 trust_region_radius, warmstart_information);
5454 DEBUG << " d^*(LP) = " << this ->LP_direction << ' \n ' ;
55+
5556 if (this ->LP_direction .status == SubproblemStatus::INFEASIBLE) {
5657 DEBUG << " Infeasible LP, EQP direction will not be computed.\n " ;
5758 direction = this ->LP_direction ;
@@ -60,15 +61,20 @@ namespace uno {
6061 return ;
6162 }
6263
64+ // TODO compute Cauchy point
65+
6366 // set up EQP subproblem: set active constraints as equations and inactive bounds as +/-INF
6467 const EQPProblem EQP_problem (problem, this ->LP_direction .active_set );
6568
6669 // compute EQP direction
67- this ->solve_QP (statistics, EQP_problem, current_iterate, current_multipliers, direction, subproblem_layer,
70+ this ->solve_EQP (statistics, EQP_problem, current_iterate, current_multipliers, direction, subproblem_layer,
6871 trust_region_radius, warmstart_information);
6972 DEBUG << " d^*(EQP) = " << direction << ' \n ' ;
7073 // reset the initial point
7174 this ->initial_point .fill (0 .);
75+
76+ // TODO compute convex combination of the Cauchy and EQP directions
77+
7278 }
7379
7480 void LPEQPMethod::initialize_feasibility_problem (const l1RelaxedProblem& /* problem*/ , Iterate& /* current_iterate*/ ) {
@@ -128,7 +134,7 @@ namespace uno {
128134 this ->number_subproblems_solved ++;
129135 }
130136
131- void LPEQPMethod::solve_QP (Statistics& statistics, const OptimizationProblem& problem, Iterate& current_iterate,
137+ void LPEQPMethod::solve_EQP (Statistics& statistics, const OptimizationProblem& problem, Iterate& current_iterate,
132138 const Multipliers& current_multipliers, Direction& direction, SubproblemLayer& subproblem_layer, double trust_region_radius,
133139 const WarmstartInformation& warmstart_information) {
134140 this ->QP_solver ->solve (statistics, problem, current_iterate, current_multipliers, this ->initial_point , direction,
0 commit comments