Skip to content

Commit e8694aa

Browse files
authored
Merge pull request #243 from jcarpent/devel
Fix warning and clean // solvers API
2 parents fb9092b + 18a9c02 commit e8694aa

File tree

5 files changed

+58
-36
lines changed

5 files changed

+58
-36
lines changed

bindings/python/src/expose-all.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ exposeSparseAlgorithms(pybind11::module_ m)
3333
{
3434
sparse::python::exposeSparseModel<T, I>(m);
3535
sparse::python::exposeQpObjectSparse<T, I>(m);
36-
sparse::python::exposeQpVectorSparse<T, I>(m);
36+
sparse::python::exposeQPVectorSparse<T, I>(m);
3737
sparse::python::solveSparseQp<T, I>(m);
3838
}
3939

@@ -43,7 +43,7 @@ exposeDenseAlgorithms(pybind11::module_ m)
4343
{
4444
dense::python::exposeDenseModel<T>(m);
4545
dense::python::exposeQpObjectDense<T>(m);
46-
dense::python::exposeQpVectorDense<T>(m);
46+
dense::python::exposeQPVectorDense<T>(m);
4747
dense::python::solveDenseQp<T>(m);
4848
}
4949

bindings/python/src/expose-qpvector.hpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace python {
1313

1414
template<typename T>
1515
void
16-
exposeQpVectorDense(pybind11::module_ m)
16+
exposeQPVectorDense(pybind11::module_ m)
1717
{
1818

1919
::pybind11::class_<dense::BatchQP<T>>(m, "BatchQP")
@@ -29,7 +29,8 @@ exposeQpVectorDense(pybind11::module_ m)
2929
&dense::BatchQP<T>::insert,
3030
"inserts a qp at the end of the vector of qps.")
3131
.def("get",
32-
&dense::BatchQP<T>::get,
32+
(dense::QP<T> & (dense::BatchQP<T>::*)(isize)) &
33+
dense::BatchQP<T>::get,
3334
pybind11::return_value_policy::reference,
3435
"get the qp.");
3536
}
@@ -41,7 +42,7 @@ namespace python {
4142

4243
template<typename T, typename I>
4344
void
44-
exposeQpVectorSparse(pybind11::module_ m)
45+
exposeQPVectorSparse(pybind11::module_ m)
4546
{
4647

4748
::pybind11::class_<sparse::BatchQP<T, I>>(m, "BatchQP")
@@ -54,7 +55,8 @@ exposeQpVectorSparse(pybind11::module_ m)
5455
pybind11::return_value_policy::reference,
5556
"init a sparse QP in place and return a reference to it.")
5657
.def("get",
57-
&sparse::BatchQP<T, I>::get,
58+
(sparse::QP<T, I> & (sparse::BatchQP<T, I>::*)(isize)) &
59+
sparse::BatchQP<T, I>::get,
5860
pybind11::return_value_policy::reference,
5961
"get the qp.");
6062
}

include/proxsuite/proxqp/dense/wrapper.hpp

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,14 +1201,14 @@ struct BatchQP
12011201
* A vector of QP aligned of size BatchSize
12021202
* specified by the user.
12031203
*/
1204-
std::vector<QP<T>> vector_qp;
1204+
std::vector<QP<T>> qp_vector;
12051205
dense::isize m_size;
12061206

12071207
explicit BatchQP(size_t batch_size)
12081208
{
1209-
if (vector_qp.max_size() != batch_size) {
1210-
vector_qp.clear();
1211-
vector_qp.reserve(batch_size);
1209+
if (qp_vector.max_size() != batch_size) {
1210+
qp_vector.clear();
1211+
qp_vector.reserve(batch_size);
12121212
}
12131213
m_size = 0;
12141214
}
@@ -1220,26 +1220,36 @@ struct BatchQP
12201220
dense::isize n_eq,
12211221
dense::isize n_in)
12221222
{
1223-
vector_qp.emplace_back(dim, n_eq, n_in);
1224-
auto& qp = vector_qp.back();
1223+
qp_vector.emplace_back(dim, n_eq, n_in);
1224+
auto& qp = qp_vector.back();
12251225
m_size++;
12261226
return qp;
12271227
};
12281228

12291229
/*!
1230-
* Inserts a qp to the end of vector_qp
1230+
* Inserts a QP to the end of qp_vector
12311231
*/
1232-
void insert(QP<T>& qp) { vector_qp.emplace_back(qp); };
1232+
void insert(const QP<T>& qp) { qp_vector.emplace_back(qp); };
12331233

12341234
/*!
1235-
* Access qp at position i
1235+
* Access QP at position i
12361236
*/
1237-
QP<T>& get(isize i) { return vector_qp.at(i); };
1237+
QP<T>& get(isize i) { return qp_vector.at(size_t(i)); };
12381238

12391239
/*!
1240-
* Access qp at position i
1240+
* Access QP at position i
12411241
*/
1242-
QP<T>& operator[](isize i) { return vector_qp.at(i); };
1242+
const QP<T>& get(isize i) const { return qp_vector.at(size_t(i)); };
1243+
1244+
/*!
1245+
* Access QP at position i
1246+
*/
1247+
QP<T>& operator[](isize i) { return get(i); };
1248+
1249+
/*!
1250+
* Access QP at position i
1251+
*/
1252+
const QP<T>& operator[](isize i) const { return get(i); };
12431253

12441254
dense::isize size() { return m_size; };
12451255
};

include/proxsuite/proxqp/parallel/qp_solve.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ solve_in_parallel(std::vector<proxqp::dense::QP<T>>& qps,
2727
set_default_omp_options(NUM_THREADS);
2828

2929
typedef proxqp::dense::QP<T> qp_dense;
30-
const Eigen::DenseIndex batch_size = qps.size();
31-
Eigen::DenseIndex i = 0;
30+
const long batch_size = long(qps.size());
31+
long i = 0;
3232
#pragma omp parallel for schedule(dynamic)
3333
for (i = 0; i < batch_size; i++) {
3434
qp_dense& qp = qps[i];
@@ -49,8 +49,8 @@ solve_in_parallel(proxqp::dense::BatchQP<T>& qps,
4949
set_default_omp_options(NUM_THREADS);
5050

5151
typedef proxqp::dense::QP<T> qp_dense;
52-
const Eigen::DenseIndex batch_size = qps.size();
53-
Eigen::DenseIndex i = 0;
52+
const long batch_size = long(qps.size());
53+
long i = 0;
5454
#pragma omp parallel for schedule(dynamic)
5555
for (i = 0; i < batch_size; i++) {
5656
qp_dense& qp = qps[i];

include/proxsuite/proxqp/sparse/wrapper.hpp

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -775,14 +775,14 @@ struct BatchQP
775775
* A vector of QP aligned of size BatchSize
776776
* specified by the user.
777777
*/
778-
std::vector<QP<T, I>> vector_qp;
778+
std::vector<QP<T, I>> qp_vector;
779779
sparse::isize m_size;
780780

781781
BatchQP(long unsigned int batchSize)
782782
{
783-
if (vector_qp.max_size() != batchSize) {
784-
vector_qp.clear();
785-
vector_qp.reserve(batchSize);
783+
if (qp_vector.max_size() != batchSize) {
784+
qp_vector.clear();
785+
qp_vector.reserve(batchSize);
786786
}
787787
m_size = 0;
788788
}
@@ -794,8 +794,8 @@ struct BatchQP
794794
sparse::isize n_eq,
795795
sparse::isize n_in)
796796
{
797-
vector_qp.emplace_back(dim, n_eq, n_in);
798-
auto& qp = vector_qp.back();
797+
qp_vector.emplace_back(dim, n_eq, n_in);
798+
auto& qp = qp_vector.back();
799799
m_size++;
800800
return qp;
801801
};
@@ -807,26 +807,36 @@ struct BatchQP
807807
// const sparse::SparseMat<bool, I>& A,
808808
// const sparse::SparseMat<bool, I>& C)
809809
// {
810-
// vector_qp.emplace_back(H.rows(), A.rows(), C.rows());
811-
// auto& qp = vector_qp.back();
810+
// qp_vector.emplace_back(H.rows(), A.rows(), C.rows());
811+
// auto& qp = qp_vector.back();
812812
// m_size++;
813813
// return qp;
814814
// };
815815

816816
/*!
817-
* Inserts a qp to the end of vector_qp
817+
* Inserts a qp to the end of qp_vector
818818
*/
819-
void insert(QP<T, I>& qp) { vector_qp.emplace_back(qp); };
819+
void insert(QP<T, I>& qp) { qp_vector.emplace_back(qp); };
820820

821821
/*!
822-
* Access qp at position i
822+
* Access QP at position i
823823
*/
824-
QP<T, I>& get(isize i) { return vector_qp.at(i); };
824+
QP<T, I>& get(isize i) { return qp_vector.at(size_t(i)); };
825825

826826
/*!
827-
* Access qp at position i
827+
* Access QP at position i
828828
*/
829-
QP<T, I>& operator[](isize i) { return vector_qp.at(i); };
829+
const QP<T, I>& get(isize i) const { return qp_vector.at(size_t(i)); };
830+
831+
/*!
832+
* Access QP at position i
833+
*/
834+
QP<T, I>& operator[](isize i) { return get(i); };
835+
836+
/*!
837+
* Access QP at position i
838+
*/
839+
const QP<T, I>& operator[](isize i) const { return get(i); };
830840

831841
sparse::isize size() { return m_size; };
832842
};

0 commit comments

Comments
 (0)