26 #ifndef CASADI_SCPGEN_HPP
27 #define CASADI_SCPGEN_HPP
29 #include "casadi/core/nlpsol_impl.hpp"
30 #include <casadi/solvers/casadi_nlpsol_scpgen_export.h>
48 double *dxk, *dlam, *gfk, *gL, *
b_gn;
52 double *dx, *x0, *x, *lam, *
dlam;
67 double *qpH, *
qpA, *qpB, *qpL, *qpG, *qpH_times_du;
74 double t_eval_mat, t_eval_res, t_eval_vec,
t_eval_exp, t_solve_qp, t_mainloop;
96 std::string
class_name()
const override {
return "Scpgen";}
100 return new Scpgen(name, nlp);
110 void init(
const Dict& opts)
override;
116 int init_mem(
void* mem)
const override;
122 Dict get_stats(
void* mem)
const override;
125 void set_work(
void* mem,
const double**& arg,
double**& res,
126 casadi_int*& iw,
double*& w)
const override;
129 int solve(
void* mem)
const override;
138 void printIteration(
ScpgenMemory* m, std::ostream &stream)
const;
141 void printIteration(
ScpgenMemory* m, std::ostream &stream, casadi_int iter,
double obj,
142 double pr_inf,
double du_inf,
143 double rg, casadi_int ls_trials,
bool ls_success)
const;
161 void line_search(
ScpgenMemory* m, casadi_int& ls_iter,
bool& ls_success)
const;
248 MX v, v_def, v_lam, v_defL;
249 MX d, d_def, d_lam, d_defL;
252 casadi_int res_var, res_lam,
res_d, res_lam_d;
253 casadi_int mod_var, mod_lam,
mod_def, mod_defL;
NLP solver storage class.
'scpgen' plugin for Nlpsol
static const std::string meta_doc
A documentation string.
Function exp_fcn_
Step expansion.
double tol_gl_
stopping criterion for the Lagrangian gradient
static const Options options_
Options.
Function res_fcn_
Residual function.
bool gauss_newton_
use Gauss-Newton Hessian
bool codegen_
Enable Code generation.
void * alloc_mem() const override
Create memory block.
double tol_du_
Tolerance on dual infeasibility.
std::vector< std::string > name_x_
bool regularize_
Regularization.
casadi_int merit_memsize_
void free_mem(void *mem) const override
Free memory block.
std::string class_name() const override
Get type name.
Function qpsol_
QP solver for the subproblems.
Function vinit_fcn_
Generate initial guess for lifted variables.
double tol_pr_step_
stopping criterion for the stepsize
const Options & get_options() const override
Options.
double tol_pr_
Tolerance on primal infeasibility.
casadi_int max_iter_
maximum number of sqp iterations
std::vector< casadi_int > print_x_
casadi_int lbfgs_memory_
Memory size of L-BFGS method.
Function vec_fcn_
Quadratic approximation.
bool print_time_
Print timers.
static Nlpsol * creator(const std::string &name, const Function &nlp)
Create a new NLP Solver.
const char * plugin_name() const override
double tol_reg_
Tolerance on regularization.
const Function getConic() const
Access qpsol.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
Options metadata for a class.
const char * iteration_note
std::vector< VarMem > lifted_mem