26 #ifndef CASADI_SLICOT_EXPM_HPP
27 #define CASADI_SLICOT_EXPM_HPP
29 #include "../../core/expm_impl.hpp"
30 #include "../../core/linsol.hpp"
31 #include <casadi/interfaces/slicot/casadi_expm_slicot_export.h>
48 struct SlicotExpmMemory :
public FunctionMemory {
58 ~SlicotExpmMemory() {}
72 class SlicotExpm :
public Expm {
75 explicit SlicotExpm();
80 SlicotExpm(
const std::string& name,
const Sparsity& A);
83 static Expm* creator(
const std::string& name,
85 return new SlicotExpm(name, A);
89 ~SlicotExpm()
override;
92 const char* plugin_name()
const override {
return "slicot";}
95 std::string class_name()
const override {
return "SlicotExpm";}
98 void init(
const Dict& opts)
override;
101 void* alloc_mem()
const override {
return new SlicotExpmMemory();}
104 int init_mem(
void* mem)
const override;
107 void free_mem(
void *mem)
const override {
delete static_cast<SlicotExpmMemory*
>(mem);}
110 void set_work(
void* mem,
const double**& arg,
double**& res,
111 casadi_int*& iw,
double*& w)
const override;
114 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w,
void* mem)
const override;
117 static const std::string meta_doc;
125 static bool has_loaded_;
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.