File tree Expand file tree Collapse file tree 4 files changed +11
-19
lines changed Expand file tree Collapse file tree 4 files changed +11
-19
lines changed Original file line number Diff line number Diff line change @@ -987,9 +987,6 @@ qp_solve( //
987987
988988 T duality_gap (0 );
989989 T rhs_duality_gap (0 );
990- isize max_dim = std::max (qpmodel.dim , qpmodel.n_eq );
991- max_dim = std::max (max_dim, qpmodel.n_in );
992- T sqrt_max_dim (std::sqrt (max_dim));
993990
994991 for (i64 iter = 0 ; iter < qpsettings.max_iter ; ++iter) {
995992
@@ -1015,8 +1012,7 @@ qp_solve( //
10151012 dual_feasibility_rhs_1,
10161013 dual_feasibility_rhs_3,
10171014 rhs_duality_gap,
1018- duality_gap,
1019- sqrt_max_dim);
1015+ duality_gap);
10201016 qpresults.info .pri_res = primal_feasibility_lhs;
10211017 qpresults.info .dua_res = dual_feasibility_lhs;
10221018 qpresults.info .duality_gap = duality_gap;
@@ -1160,8 +1156,7 @@ qp_solve( //
11601156 dual_feasibility_rhs_1,
11611157 dual_feasibility_rhs_3,
11621158 rhs_duality_gap,
1163- duality_gap,
1164- sqrt_max_dim);
1159+ duality_gap);
11651160 qpresults.info .dua_res = dual_feasibility_lhs_new;
11661161 qpresults.info .duality_gap = duality_gap;
11671162
@@ -1220,8 +1215,7 @@ qp_solve( //
12201215 dual_feasibility_rhs_1,
12211216 dual_feasibility_rhs_3,
12221217 rhs_duality_gap,
1223- duality_gap,
1224- sqrt_max_dim);
1218+ duality_gap);
12251219 qpresults.info .dua_res = dual_feasibility_lhs_new;
12261220 qpresults.info .duality_gap = duality_gap;
12271221
Original file line number Diff line number Diff line change @@ -352,15 +352,17 @@ global_dual_residual(const Results<T>& qpresults,
352352 T& dual_feasibility_rhs_1,
353353 T& dual_feasibility_rhs_3,
354354 T& rhs_duality_gap,
355- T& duality_gap,
356- T sqrt_max_dim)
355+ T& duality_gap)
357356{
358357 // dual_feasibility_lhs = norm(dual_residual_scaled)
359358 // dual_feasibility_rhs_0 = norm(unscaled(Hx))
360359 // dual_feasibility_rhs_1 = norm(unscaled(ATy))
361360 // dual_feasibility_rhs_3 = norm(unscaled(CTz))
362361 //
363362 // dual_residual_scaled = scaled(Hx + g + ATy + CTz)
363+ const isize max_dim = std::max (qpmodel.dim ,std::max (qpmodel.n_eq ,qpmodel.n_in ));
364+ const T sqrt_max_dim (std::sqrt (max_dim)); // for normalizing scalar products
365+
364366 qpwork.dual_residual_scaled = qpwork.g_scaled ;
365367 qpwork.CTz .noalias () =
366368 qpwork.H_scaled .template selfadjointView <Eigen::Lower>() * qpresults.x ;
Original file line number Diff line number Diff line change @@ -725,10 +725,7 @@ qp_solve(Results<T>& results,
725725 }
726726 }
727727 T rhs_duality_gap (0 );
728- isize max_dim = std::max (data.dim , data.n_eq );
729- max_dim = std::max (max_dim, data.n_in );
730- T sqrt_max_dim (std::sqrt (max_dim));
731-
728+
732729 for (isize iter = 0 ; iter < settings.max_iter ; ++iter) {
733730
734731 results.info .iter_ext += 1 ;
@@ -793,7 +790,6 @@ qp_solve(Results<T>& results,
793790 dual_feasibility_rhs_1,
794791 dual_feasibility_rhs_3,
795792 rhs_duality_gap,
796- sqrt_max_dim,
797793 precond,
798794 data,
799795 qp_scaled.as_const (),
@@ -1224,7 +1220,6 @@ qp_solve(Results<T>& results,
12241220 dual_feasibility_rhs_1,
12251221 dual_feasibility_rhs_3,
12261222 rhs_duality_gap,
1227- sqrt_max_dim,
12281223 precond,
12291224 data,
12301225 qp_scaled.as_const (),
@@ -1286,7 +1281,6 @@ qp_solve(Results<T>& results,
12861281 dual_feasibility_rhs_1,
12871282 dual_feasibility_rhs_3,
12881283 rhs_duality_gap,
1289- sqrt_max_dim,
12901284 precond,
12911285 data,
12921286 qp_scaled.as_const (),
Original file line number Diff line number Diff line change @@ -630,7 +630,6 @@ unscaled_primal_dual_residual(
630630 T& dual_feasibility_rhs_1,
631631 T& dual_feasibility_rhs_3,
632632 T& rhs_duality_gap,
633- T sqrt_max_dim,
634633 const P& precond,
635634 Model<T, I> const & data,
636635 const QpView<T, I> qp_scaled,
@@ -642,6 +641,9 @@ unscaled_primal_dual_residual(
642641{
643642 isize n = x_e.rows ();
644643
644+ const isize max_dim = std::max (data.dim ,std::max (data.n_eq ,data.n_in ));
645+ const T sqrt_max_dim (std::sqrt (max_dim)); // for normalizing scalar products
646+
645647 LDLT_TEMP_VEC_UNINIT (T, tmp, n, stack);
646648 dual_residual_scaled = qp_scaled.g .to_eigen ();
647649 {
You can’t perform that action at this time.
0 commit comments