26 #ifndef CASADI_CONVEXIFY_HPP
27 #define CASADI_CONVEXIFY_HPP
29 #include "mx_node.hpp"
46 class CASADI_EXPORT Convexify :
public MXNode {
50 Convexify(
const MX& H,
const Dict& opts=
Dict());
53 ~Convexify()
override {}
57 int eval_gen(
const T** arg, T** res, casadi_int* iw, T* w)
const;
60 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
65 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res)
const override;
70 void generate(CodeGenerator& g,
71 const std::vector<casadi_int>& arg,
72 const std::vector<casadi_int>& res)
const override;
77 size_t sz_iw()
const override;
82 size_t sz_w()
const override;
87 std::string disp(
const std::vector<std::string>& arg)
const override;
92 casadi_int op()
const override {
return OP_CONVEXIFY;}
97 void serialize_body(SerializingStream& s)
const override;
102 static MXNode* deserialize(DeserializingStream& s) {
return new Convexify(s); }
104 struct ConvexifyData convexify_data_;
106 static Sparsity setup(ConvexifyData& d,
const Sparsity& H,
107 const Dict& opts=
Dict(),
bool inplace=
true);
109 static std::string generate(CodeGenerator& g,
110 const ConvexifyData &d,
111 const std::string& Hin,
const std::string& Hout,
112 const std::string& iw,
const std::string& w);
114 static void deserialize(DeserializingStream& s,
const std::string& prefix, ConvexifyData& d);
115 static void serialize(SerializingStream& s,
const std::string& prefix,
const ConvexifyData& d);
121 explicit Convexify(DeserializingStream& s);
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.