Skip to content

Commit 23c9bd7

Browse files
Bambadejcarpent
authored andcommitted
integrate sqrt_max_dim computations within associated functions
1 parent fed6bab commit 23c9bd7

File tree

4 files changed

+11
-19
lines changed

4 files changed

+11
-19
lines changed

include/proxsuite/proxqp/dense/solver.hpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff 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

include/proxsuite/proxqp/dense/utils.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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;

include/proxsuite/proxqp/sparse/solver.hpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff 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(),

include/proxsuite/proxqp/sparse/utils.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff 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
{

0 commit comments

Comments
 (0)