26 #ifndef CASADI_EXTERNAL_IMPL_HPP
27 #define CASADI_EXTERNAL_IMPL_HPP
29 #include "external.hpp"
30 #include "function_internal.hpp"
38 #define _WIN32_WINNT 0x0502
107 const std::vector<std::string> config_args=std::vector<std::string>());
117 virtual bool any_symbol_found()
const;
120 Function factory(
const std::string& name,
121 const std::vector<std::string>& s_in,
122 const std::vector<std::string>& s_out,
124 const Dict& opts)
const override;
129 std::string
class_name()
const override {
return "External";}
134 virtual void init_external();
137 void init(
const Dict& opts)
override;
152 std::string codegen_mem_type()
const override;
193 size_t get_n_in()
override;
194 size_t get_n_out()
override;
200 double get_default_in(casadi_int i)
const override;
206 std::string get_name_in(casadi_int i)
override;
207 std::string get_name_out(casadi_int i)
override;
214 Function get_forward(casadi_int nfwd,
const std::string& name,
215 const std::vector<std::string>& inames,
216 const std::vector<std::string>& onames,
217 const Dict& opts)
const override;
218 bool has_forward(casadi_int nfwd)
const override;
225 Function get_reverse(casadi_int nadj,
const std::string& name,
226 const std::vector<std::string>& inames,
227 const std::vector<std::string>& onames,
228 const Dict& opts)
const override;
229 bool has_reverse(casadi_int nadj)
const override;
236 bool has_jacobian()
const override;
237 Function get_jacobian(
const std::string& name,
238 const std::vector<std::string>& inames,
239 const std::vector<std::string>& onames,
240 const Dict& opts)
const override;
267 sparsity_t get_sparsity_in_, get_sparsity_out_, get_jac_sparsity_;
269 diff_t get_diff_in_, get_diff_out_;
276 const std::vector<std::string> config_args=std::vector<std::string>());
286 bool any_symbol_found()
const override;
291 void init_external()
override;
294 void init(
const Dict& opts)
override;
300 Sparsity get_sparsity_in(casadi_int i)
override;
301 Sparsity get_sparsity_out(casadi_int i)
override;
308 bool has_jac_sparsity(casadi_int oind, casadi_int iind)
const override;
309 Sparsity get_jac_sparsity(casadi_int oind, casadi_int iind,
bool symmetric)
const override;
316 bool get_diff_in(casadi_int i)
override;
317 bool get_diff_out(casadi_int i)
override;
Helper class for C code generation.
Helper class for Serialization.
std::vector< double > real_data_
Data vectors.
std::vector< const char * > args_
Importer li_
Information about the library.
default_t get_default_in_
Get default inputs.
std::string string_data_
Data vectors.
std::vector< std::string > config_args_
Arguments as passed to init.
std::vector< casadi_int > int_data_
Data vectors.
work_t work_
Work vector sizes.
getint_t get_n_in_
Number of inputs and outputs.
std::string serialize_base_function() const override
String used to identify the immediate FunctionInternal subclass.
config_t config_
Initialize.
name_t get_name_in_
Names of inputs and outputs.
std::string class_name() const override
Get type name.
Internal class for Function.
std::map< std::string, std::vector< std::string > > AuxOut
~GenericExternal() override
Destructor.
Base class for FunctionInternal and LinsolInternal.
Helper class for Serialization.
const casadi_int *(* sparsity_t)(casadi_int i)
Function pointer types for the C API.
int(* diff_t)(casadi_int i)
Function pointer types for the C API.
const char *(* name_t)(casadi_int i)
Function pointer types for the C API.
casadi_int(* getint_t)(void)
Function pointer types for the C API.
int(* config_t)(int, const char **)
Function pointer types for the C API.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
void(* signal_t)(void)
Function pointer types for the C API.
double(* default_t)(casadi_int i)
Function pointer types for the C API.
int(* work_t)(casadi_int *sz_arg, casadi_int *sz_res, casadi_int *sz_iw, casadi_int *sz_w)
Function pointer types for the C API.