22// Copyright (c) 2022 INRIA
33//
44/* * \file */
5- #ifndef PROXSUITE_QP_DENSE_MODEL_HPP
6- #define PROXSUITE_QP_DENSE_MODEL_HPP
5+ #ifndef PROXSUITE_PROXQP_DENSE_MODEL_HPP
6+ #define PROXSUITE_PROXQP_DENSE_MODEL_HPP
77
88#include < Eigen/Core>
9- #include < proxsuite/linalg/veg/type_traits/core.hpp>
9+ #include " proxsuite/linalg/veg/type_traits/core.hpp"
1010#include " proxsuite/proxqp/dense/fwd.hpp"
11- #include < proxsuite/proxqp/sparse/model.hpp>
11+ #include " proxsuite/proxqp/sparse/model.hpp"
1212
1313namespace proxsuite {
1414namespace proxqp {
@@ -32,41 +32,47 @@ struct Model
3232 Vec<T> u;
3333 Vec<T> l;
3434
35- // /// model size
35+ // /// model sizes
3636 isize dim;
3737 isize n_eq;
3838 isize n_in;
3939 isize n_total;
40+
4041 /* !
4142 * Default constructor.
42- * @param _dim primal variable dimension.
43- * @param _n_eq number of equality constraints.
44- * @param _n_in number of inequality constraints.
43+ * @param dim primal variable dimension.
44+ * @param n_eq number of equality constraints.
45+ * @param n_in number of inequality constraints.
4546 */
46- Model (isize _dim , isize _n_eq , isize _n_in )
47- : H(_dim, _dim )
48- , g(_dim )
49- , A(_n_eq, _dim )
50- , C(_n_in, _dim )
51- , b(_n_eq )
52- , u(_n_in )
53- , l(_n_in )
54- , dim(_dim )
55- , n_eq(_n_eq )
56- , n_in(_n_in )
57- , n_total(_dim + _n_eq + _n_in )
47+ Model (isize dim , isize n_eq , isize n_in )
48+ : H(dim, dim )
49+ , g(dim )
50+ , A(n_eq, dim )
51+ , C(n_in, dim )
52+ , b(n_eq )
53+ , u(n_in )
54+ , l(n_in )
55+ , dim(dim )
56+ , n_eq(n_eq )
57+ , n_in(n_in )
58+ , n_total(dim + n_eq + n_in )
5859 {
59- PROXSUITE_THROW_PRETTY (_dim == 0 ,
60+ PROXSUITE_THROW_PRETTY (dim == 0 ,
6061 std::invalid_argument,
61- " wrong argument size: the dimension wrt primal "
62+ " wrong argument size: the dimension wrt the primal "
6263 " variable x should be strictly positive." );
64+
65+ const T infinite_bound_value = helpers::infinite_bound<T>::value ();
66+
6367 H.setZero ();
6468 g.setZero ();
6569 A.setZero ();
6670 C.setZero ();
6771 b.setZero ();
68- u.setZero ();
69- l.setZero ();
72+ u.fill (+infinite_bound_value); // in case it appears u is nullopt (i.e., the
73+ // problem is only lower bounded)
74+ l.fill (-infinite_bound_value); // in case it appears l is nullopt (i.e., the
75+ // problem is only upper bounded)
7076 }
7177
7278 proxsuite::proxqp::sparse::SparseModel<T> to_sparse ()
@@ -83,4 +89,4 @@ struct Model
8389} // namespace proxqp
8490} // namespace proxsuite
8591
86- #endif /* end of include guard PROXSUITE_QP_DENSE_MODEL_HPP */
92+ #endif /* end of include guard PROXSUITE_PROXQP_DENSE_MODEL_HPP */
0 commit comments