59 assert(
Q.rows() ==
n);
60 assert(
Q.cols() ==
n);
65 assert(
A.rows() ==
m);
66 assert(
A.cols() ==
n);
75 return {
Q->nrow,
Q->ncol,
Q->nzmax,
Q->p,
Q->i,
Q->x,
Q->nz};
79 return {
A->nrow,
A->ncol,
A->nzmax,
A->p,
A->i,
A->x,
A->nz};
84 mutable ::QPALMData data{};
131 std::optional<const_ref_vec_t> bmax);
142 std::optional<const_ref_vec_t> y);
179 using workspace_ptr =
180 std::unique_ptr<::QPALMWorkspace, alloc::qpalm_workspace_cleaner>;
Stores the matrices and vectors that define the problem.
index_t m
Number of constraints (size of bmin and bmax, number of rows of A).
Data(index_t n, index_t m)
Construct a problem of dimension n with m constraints.
index_t n
Problem dimension (size of x and q, number rows and columns of Q, number of columns of A).
ladel_sparse_matrix_ptr Q
void set_A(const sparse_mat_t &A)
Set the sparse A matrix. Creates a copy.
ladel_sparse_matrix_ptr A
QPALM_CXX_EXPORTconst ::QPALMData * get_c_data_ptr() const
Get a pointer to the underlying C data structure.
sparse_mat_view_t get_Q() const
Get a view on the Q matrix of the problem.
sparse_mat_view_t get_A() const
Get a view on the A matrix of the problem.
void set_Q(const sparse_mat_t &Q)
Set the sparse Q matrix. Creates a copy.
QPALM_CXX_EXPORT SolutionView get_solution() const
Get the solution computed by solve().
QPALM_CXX_EXPORT void update_Q_A(const_ref_vec_t Q_vals, const_ref_vec_t A_vals)
QPALM_CXX_EXPORT const QPALMInfo & get_info() const
Get the solver information from the last call to solve().
QPALM_CXX_EXPORT void update_q(const_ref_vec_t q)
QPALM_CXX_EXPORT Solver(const Data &data, const Settings &settings)
Create a new solver for the problem defined by data and with the parameters defined by settings.
QPALM_CXX_EXPORT void warm_start(std::optional< const_ref_vec_t > x, std::optional< const_ref_vec_t > y)
QPALM_CXX_EXPORT void update_bounds(std::optional< const_ref_vec_t > bmin, std::optional< const_ref_vec_t > bmax)
QPALM_CXX_EXPORT void solve()
Solve the problem.
QPALM_CXX_EXPORT void update_settings(const Settings &settings)
index_t get_m() const
Get the number of constraints .
QPALM_CXX_EXPORT const_borrowed_vec_t get_dual_inf_certificate() const
Get the certificate of dual infeasibility of the problem.
QPALM_CXX_EXPORTconst ::QPALMWorkspace * get_c_work_ptr() const
Get a pointer to the underlying C workspace data structure.
index_t get_n() const
Get the problem dimension (size of ).
QPALM_CXX_EXPORT const_borrowed_vec_t get_prim_inf_certificate() const
Get the certificate of primal infeasibility of the problem.
ladel_double c_float
type for floating point numbers
::QPALMInfo Info
Information returned by the solver.
Eigen::Matrix< c_float, Eigen::Dynamic, 1 > vec_t
Owning dense vector type.
Eigen::Ref< const vec_t > const_ref_vec_t
Read-only reference to a dense vector (vector view).
Eigen::Map< const sparse_mat_t > sparse_mat_view_t
Read-only view on a sparse matrix.
std::unique_ptr< ladel_sparse_matrix, alloc::ladel_sparse_matrix_deleter > ladel_sparse_matrix_ptr
Smart pointer that automatically cleans up an owning ladel_sparse_matrix object.
Eigen::Index index_t
Index types for vectors and matrices.
Eigen::SparseMatrix< c_float, Eigen::ColMajor, sp_index_t > sparse_mat_t
Owning sparse matrix type.
Eigen::Map< const vec_t > const_borrowed_vec_t
Read-only borrowed dense vector type (vector view).
QPALM_CXX_EXPORT ladel_sparse_matrix_ptr eigen_to_ladel_copy(const sparse_mat_t &mat)
Similar to eigen_to_ladel, but creates a copy of all data, in such a way that the returned matrix is ...
Solver return information.
Settings and parameters for the QPALM solver.
QPALM_CXX_EXPORT Settings()
Construct with default settings.
View on the solution returned by the solver.
Callable that cleans up the given workspace.
QPALM_CXX_EXPORT void operator()(::QPALMWorkspace *) const
Internal data structures used in QPALM.