26 #ifndef CASADI_QPOASES_INTERFACE_HPP
27 #define CASADI_QPOASES_INTERFACE_HPP
29 #include "casadi/core/conic_impl.hpp"
30 #include "casadi/core/linsol.hpp"
31 #include <casadi/interfaces/qpoases/casadi_conic_qpoases_export.h>
32 #include <qpOASES.hpp>
47 class QpoasesInterface;
58 qpOASES::SQProblem *
sqp;
59 qpOASES::QProblemB *
qp;
63 qpOASES::SymSparseMat *
h;
64 qpOASES::SparseMatrix *
a;
73 std::vector<casadi_int> row,
col, nz_map;
75 std::vector<int> h_row, h_colind, a_row,
a_colind;
78 std::vector<double>
nz;
105 const std::map<std::string, Sparsity>& st) {
111 const std::map<std::string, Sparsity>& st);
120 std::string
class_name()
const override {
return "QpoasesInterface";}
129 void init(
const Dict& opts)
override;
135 int init_mem(
void* mem)
const override;
141 int solve(
const double** arg,
double** res,
142 casadi_int* iw,
double* w,
void* mem)
const override;
148 static int qpoases_init(
void* mem,
int dim,
int nnz,
const int* row,
const int* col);
151 static int qpoases_sfact(
void* mem,
const double* vals);
154 static int qpoases_nfact(
void* mem,
const double* vals,
int* neig,
int* rank);
157 static int qpoases_solve(
void* mem,
int nrhs,
double* rhs);
160 static void qpoases_printf(
const char* s);
163 Dict get_stats(
void* mem)
const override;
178 static bool from_BooleanType(qpOASES::BooleanType b);
179 static qpOASES::BooleanType to_BooleanType(
bool b);
180 static std::string from_SubjectToStatus(qpOASES::SubjectToStatus b);
181 static qpOASES::SubjectToStatus to_SubjectToStatus(std::string b);
182 static std::string from_PrintLevel(qpOASES::PrintLevel b);
183 static qpOASES::PrintLevel to_PrintLevel(std::string b);
202 static std::string getErrorMessage(casadi_int flag);
Helper class for Serialization.
Base class for FunctionInternal and LinsolInternal.
'qpoases' plugin for Conic
std::string class_name() const override
Readable name of the internal class.
void * alloc_mem() const override
Create memory block.
const char * plugin_name() const override
void free_mem(void *mem) const override
Free memory block.
static const Options options_
Options.
static const std::string meta_doc
A documentation string.
static Conic * creator(const std::string &name, const std::map< std::string, Sparsity > &st)
Create a new QP Solver.
static void qpoases_error(const std::string &module, casadi_int flag)
Throw error.
std::string linsol_plugin_
static ProtoFunction * deserialize(DeserializingStream &s)
Deserialize into MX.
QpoasesInterface()
Constructor.
qpOASES::HessianType hess_
const Options & get_options() const override
Options.
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
Options metadata for a class.
bool called_once
Has qpOASES been called once?
std::vector< casadi_int > lin_map
std::vector< casadi_int > col
qpOASES::SymSparseMat * h
std::string linsol_plugin
std::vector< int > a_colind
qpOASES::SparseMatrix * a