From a91f0239cdbcdb7ff830e9a4f58cd2aa64a2e835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Fri, 29 Jan 2021 10:05:48 +0100 Subject: [PATCH] Fix QP solver test: raw replacement that is working --- QP_solver/include/CGAL/QP_solver/QP_basis_inverse_impl.h | 5 ++--- QP_solver/include/CGAL/QP_solver/QP_solver.h | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/QP_solver/include/CGAL/QP_solver/QP_basis_inverse_impl.h b/QP_solver/include/CGAL/QP_solver/QP_basis_inverse_impl.h index f3f879d8bb7..04e8f3f36d4 100644 --- a/QP_solver/include/CGAL/QP_solver/QP_basis_inverse_impl.h +++ b/QP_solver/include/CGAL/QP_solver/QP_basis_inverse_impl.h @@ -178,11 +178,10 @@ z_replace_original_by_original(ForwardIterator y_l_it, // tmp_l -part std::transform(y_l_it, (y_l_it+s), x_l.begin(), tmp_l.begin(), - [&s_delta](const ET& v1, const ET& v2){ return v1 + v2 * s_delta; }); - + [&s_delta](const ET& v1, const ET& v2){ return std::plus()(v1, s_delta * v2); }); // tmp_x -part std::transform(y_x_it, (y_x_it+b), x_x.begin(), tmp_x.begin(), - [&s_delta](const ET& v1, const ET& v2){ return v1 + v2 * s_delta; }); + [&s_delta](const ET& v1, const ET& v2){ return std::plus()(v1, s_delta * v2); }); tmp_x[k_i] -= d; // prepare \hat{k}_{2} -scalar diff --git a/QP_solver/include/CGAL/QP_solver/QP_solver.h b/QP_solver/include/CGAL/QP_solver/QP_solver.h index ff3676702d6..889fdf25a1b 100644 --- a/QP_solver/include/CGAL/QP_solver/QP_solver.h +++ b/QP_solver/include/CGAL/QP_solver/QP_solver.h @@ -1599,7 +1599,7 @@ ratio_test_1__q_x_S( Tag_false) q_x_S.begin(), [this](const ET& n1, const RT& n2) { - return n1 - this->d * NT_converter() (n2); + return std::minus()(n1,this->d * NT_converter() (n2)); }); } @@ -1940,13 +1940,13 @@ compute__x_B_S( Tag_false /*has_equalities_only_and_full_rank*/, x_B_S.begin(), x_B_S.begin(), [this](const ET& n1, const ET& n2) - { return this->d * n1 - n2; }); + { return std::minus()(this->d * n1, n2); }); // b_S_B - ( A_S_BxB_O * x_B_O) - r_S_B std::transform(x_B_S.begin(), x_B_S.begin()+S_B.size(), r_S_B.begin(), x_B_S.begin(), [this](const ET& n1, const ET& n2) - { return n1 - this->d * n2; }); + { return std::minus()(n1, this->d * n2); }); // x_B_S = +- ( b_S_B - A_S_BxB_O * x_B_O) Value_iterator x_it = x_B_S.begin();