Skip to content

Commit f45f132

Browse files
committed
use assess_optim(), assess_feas() instead of operator()()
1 parent f4bd6b0 commit f45f132

File tree

4 files changed

+37
-12
lines changed

4 files changed

+37
-12
lines changed

include/corrsolver/Qmi_oracle.hpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,13 @@ template <typename Arr036> class Qmi_oracle {
5656
* @param[in] x
5757
* @return std::optional<Cut>
5858
*/
59-
auto operator()(const Arr036& x) -> std::optional<Cut>;
59+
auto assess_feas(const Arr036& x) -> std::optional<Cut>;
60+
61+
/*!
62+
* @brief
63+
*
64+
* @param[in] x
65+
* @return std::optional<Cut>
66+
*/
67+
auto operator()(const Arr036& x) -> std::optional<Cut> { return this->assess_feas(x); }
6068
};

source/Qmi_oracle.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ template <typename Arr036> Qmi_oracle<Arr036>::Qmi_oracle(gsl::span<const Arr036
4141
* @param[in] x
4242
* @return std::optional<Cut>
4343
*/
44-
template <typename Arr036> auto Qmi_oracle<Arr036>::operator()(const Arr036& x)
44+
template <typename Arr036> auto Qmi_oracle<Arr036>::assess_feas(const Arr036& x)
4545
-> std::optional<typename Qmi_oracle<Arr036>::Cut> {
4646
using xt::linalg::dot;
4747

source/lsq_corr_ell.cpp

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
#include <cmath> // for sqrt, exp
44
#include <corrsolver/Qmi_oracle.hpp> // for Qmi_oracle
55
#include <cstddef> // for size_t
6-
#include <ellalgo/cut_config.hpp> // for CInfo
76
#include <ellalgo/cutting_plane.hpp> // for cutting_plane_optim, bsearch
87
#include <ellalgo/ell.hpp> // for Ell
98
#include <gsl/span> // for span
109
#include <lmisolver/ldlt_ext.hpp> // for ldlt_ext
11-
#include <lmisolver/lmi0_oracle.hpp> // for lmi0_oracle
12-
#include <lmisolver/lmi_oracle.hpp> // for lmi_oracle, lmi_oracle::Arr
10+
#include <lmisolver/lmi0_oracle.hpp> // for Lmi0Oracle
11+
#include <lmisolver/lmi_oracle.hpp> // for LmiOracle, LmiOracle::Arr
1312
#include <optional> // for optional
1413
#include <tuple> // for tuple_element<>::type
1514
#include <tuple> // for tuple, make_tuple
@@ -157,7 +156,7 @@ class lsq_oracle {
157156

158157
private:
159158
Qmi_oracle<Arr> _qmi;
160-
lmi0_oracle<Arr> _lmi0;
159+
Lmi0Oracle<Arr> _lmi0;
161160

162161
public:
163162
/*!
@@ -175,7 +174,7 @@ class lsq_oracle {
175174
* @param[in] t the best-so-far optimal value
176175
* @return auto
177176
*/
178-
std::tuple<Cut, bool> operator()(const Arr& x, double& t) {
177+
std::tuple<Cut, bool> assess_optim(const Arr& x, double& t) {
179178
const auto n = x.size();
180179
Arr g = xt::zeros<double>({n});
181180
if (const auto cut0 = this->_lmi0(xt::view(x, xt::range(0, n - 1)))) {
@@ -205,6 +204,15 @@ class lsq_oracle {
205204
t = x(n - 1);
206205
return {{std::move(g), 0.0}, true};
207206
}
207+
208+
/*!
209+
* @brief
210+
*
211+
* @param[in] x
212+
* @param[in] t the best-so-far optimal value
213+
* @return auto
214+
*/
215+
std::tuple<Cut, bool> operator()(const Arr& x, double& t) { return this->assess_optim(x, t); }
208216
};
209217

210218
/*!
@@ -257,8 +265,8 @@ class mle_oracle {
257265
private:
258266
const Arr& _Y;
259267
const std::vector<Arr>& _Sig;
260-
lmi0_oracle<Arr> _lmi0;
261-
lmi_oracle<Arr> _lmi;
268+
Lmi0Oracle<Arr> _lmi0;
269+
LmiOracle<Arr> _lmi;
262270

263271
public:
264272
/*!
@@ -277,7 +285,7 @@ class mle_oracle {
277285
* @param[in] t the best-so-far optimal value
278286
* @return auto
279287
*/
280-
std::tuple<Cut, bool> operator()(const Arr& x, double& t) {
288+
std::tuple<Cut, bool> assess_optim(const Arr& x, double& t) {
281289
using xt::linalg::dot;
282290

283291
const auto cut1 = this->_lmi(x);
@@ -322,6 +330,15 @@ class mle_oracle {
322330
}
323331
return {{std::move(g), f}, shrunk};
324332
}
333+
334+
/*!
335+
* @brief
336+
*
337+
* @param[in] x
338+
* @param[in] t the best-so-far optimal value
339+
* @return auto
340+
*/
341+
std::tuple<Cut, bool> operator()(const Arr& x, double& t) { return this->assess_optim(x, t); }
325342
};
326343

327344
/*!

specific.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ endif(xtensor_ADDED)
1919

2020
CPMAddPackage(
2121
NAME EllAlgo
22-
GIT_TAG 1.3.1
22+
GIT_TAG 1.3.2
2323
GITHUB_REPOSITORY luk036/ellalgo-cpp
2424
OPTIONS "INSTALL_ONLY YES" # create an installable target
2525
)
@@ -28,7 +28,7 @@ CPMAddPackage("gh:microsoft/GSL@3.1.0")
2828

2929
CPMAddPackage(
3030
NAME LmiSolver
31-
GIT_TAG 1.3.1
31+
GIT_TAG 1.3.2
3232
GITHUB_REPOSITORY luk036/lmi-solver-cpp
3333
OPTIONS "INSTALL_ONLY YES" # create an installable target
3434
)

0 commit comments

Comments
 (0)