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,
73 const std::vector<bool>& arg_is_ref,
74 std::vector<bool>& res_is_ref)
const override;
79 size_t sz_iw()
const override;
84 size_t sz_w()
const override;
89 std::string disp(
const std::vector<std::string>& arg)
const override;
94 casadi_int op()
const override {
return OP_CONVEXIFY;}
99 void serialize_body(SerializingStream& s)
const override;
104 static MXNode* deserialize(DeserializingStream& s) {
return new Convexify(s); }
106 struct ConvexifyData convexify_data_;
108 static Sparsity setup(ConvexifyData& d,
const Sparsity& H,
109 const Dict& opts=
Dict(),
bool inplace=
true);
111 static std::string generate(CodeGenerator& g,
112 const ConvexifyData &d,
113 const std::string& Hin,
const std::string& Hout,
114 const std::string& iw,
const std::string& w);
116 static void deserialize(DeserializingStream& s,
const std::string& prefix, ConvexifyData& d);
117 static void serialize(SerializingStream& s,
const std::string& prefix,
const ConvexifyData& d);
123 explicit Convexify(DeserializingStream& s);
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.