26 #ifndef CASADI_DPLE_IMPL_HPP
27 #define CASADI_DPLE_IMPL_HPP
30 #include "function_internal.hpp"
31 #include "plugin_interface.hpp"
36 class CASADI_EXPORT Dple :
public FunctionInternal,
public PluginInterface<Dple> {
40 Dple(
const std::string& name,
const SpDict &st);
49 size_t get_n_in()
override {
return DPLE_NUM_IN;}
50 size_t get_n_out()
override {
return DPLE_NUM_OUT;}
57 Sparsity get_sparsity_in(casadi_int i)
override;
58 Sparsity get_sparsity_out(casadi_int i)
override;
65 std::string get_name_in(casadi_int i)
override {
return dple_in(i);}
66 std::string get_name_out(casadi_int i)
override {
return dple_out(i);}
73 static const Options options_;
74 const Options& get_options()
const override {
return options_;}
78 void init(
const Dict& opts)
override;
84 bool has_forward(casadi_int nfwd)
const override {
return true;}
85 Function get_forward(casadi_int nfwd,
const std::string& name,
86 const std::vector<std::string>& inames,
87 const std::vector<std::string>& onames,
88 const Dict& opts)
const override;
95 bool has_reverse(casadi_int nadj)
const override {
return true;}
96 Function get_reverse(casadi_int nadj,
const std::string& name,
97 const std::vector<std::string>& inames,
98 const std::vector<std::string>& onames,
99 const Dict& opts)
const override;
103 typedef Dple* (*Creator)(
const std::string& name,
104 const std::map<std::string, Sparsity>& st);
110 static std::map<std::string, Plugin> solvers_;
113 static const std::string infix_;
116 static std::string shortname() {
return "dple";}
136 bool error_unstable_;
139 double eps_unstable_;
CASADI_EXPORT std::vector< std::string > dple_in()
Get input scheme of DPLE solvers.
CASADI_EXPORT std::vector< std::string > dple_out()
Get output scheme of DPLE solvers.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
std::map< std::string, Sparsity > SpDict