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,
66 const std::vector<bool>& unique={})
const override;
71 void generate(CodeGenerator& g,
72 const std::vector<casadi_int>& arg,
73 const std::vector<casadi_int>& res,
74 const std::vector<bool>& arg_is_ref,
75 std::vector<bool>& res_is_ref)
const override;
80 size_t sz_iw()
const override;
85 size_t sz_w()
const override;
90 std::string disp(
const std::vector<std::string>& arg)
const override;
95 casadi_int op()
const override {
return OP_CONVEXIFY;}
100 void serialize_body(SerializingStream& s)
const override;
105 static MXNode* deserialize(DeserializingStream& s) {
return new Convexify(s); }
107 struct ConvexifyData convexify_data_;
109 static Sparsity setup(ConvexifyData& d,
const Sparsity& H,
110 const Dict& opts=
Dict(),
bool inplace=
true);
112 static std::string generate(CodeGenerator& g,
113 const ConvexifyData &d,
114 const std::string& Hin,
const std::string& Hout,
115 const std::string& iw,
const std::string& w);
117 static void deserialize(DeserializingStream& s,
const std::string& prefix, ConvexifyData& d);
118 static void serialize(SerializingStream& s,
const std::string& prefix,
const ConvexifyData& d);
124 explicit Convexify(DeserializingStream& s);
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.