26 #ifndef CASADI_PIQP_INTERFACE_HPP
27 #define CASADI_PIQP_INTERFACE_HPP
29 #include "casadi/core/conic_impl.hpp"
30 #include <casadi/interfaces/piqp/casadi_conic_piqp_export.h>
32 #include <Eigen/Dense>
33 #include <Eigen/Sparse>
36 #include <piqp/piqp.hpp>
64 std::vector<casadi_int> row,
col;
91 const std::map<std::string, Sparsity>& st);
95 const std::map<std::string, Sparsity>& st) {
106 std::string
class_name()
const override {
return "PiqpInterface";}
115 void init(
const Dict& opts)
override;
118 void finalize()
override;
124 int init_mem(
void* mem)
const override;
130 int solve(
const double** arg,
double** res,
131 casadi_int* iw,
double* w,
void* mem)
const override;
143 Dict get_stats(
void* mem)
const override;
Helper class for Serialization.
bool psd_support() const override
SOCP/PSD lifting is not implemented in this interface.
std::string class_name() const override
Readable name of the internal class.
bool integer_support() const override
PIQP is a continuous QP solver: no integer/MIP support.
static const std::string meta_doc
A documentation string.
piqp::Settings< double > settings_
static ProtoFunction * deserialize(DeserializingStream &s)
Deserialize with type disambiguation.
static const Options options_
const Options
static Conic * creator(const std::string &name, const std::map< std::string, Sparsity > &st)
Create a new QP Solver.
const char * plugin_name() const override
const Options & get_options() const override
const Options
void * alloc_mem() const override
Create memory block.
void free_mem(void *mem) const override
Free memory block.
Base class for FunctionInternal and LinsolInternal.
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
Options metadata for a class.
std::vector< TripletT > tripletListEq
Eigen::VectorXd uba_vector
Eigen::VectorXd lbx_vector
std::unique_ptr< Eigen::VectorXd > results_z
std::unique_ptr< Eigen::VectorXd > results_y
std::vector< TripletT > tripletList
std::vector< casadi_int > col
Eigen::VectorXd lba_vector
std::unique_ptr< Eigen::VectorXd > results_lam_x
Eigen::Triplet< double > TripletT
Eigen::VectorXd ubx_vector
Eigen::VectorXd eq_b_vector
std::unique_ptr< Eigen::VectorXd > results_x