26 #ifndef CASADI_SETNONZEROS_PARAM_HPP
27 #define CASADI_SETNONZEROS_PARAM_HPP
29 #include "mx_node.hpp"
53 static MX create(
const MX& y,
const MX& x,
const MX& nz);
54 static MX create(
const MX& y,
const MX& x,
const MX& inner,
const Slice& outer);
55 static MX create(
const MX& y,
const MX& x,
const Slice& inner,
const MX& outer);
56 static MX create(
const MX& y,
const MX& x,
const MX& inner,
const MX& outer);
69 int sp_forward(
const bvec_t** arg,
bvec_t** res, casadi_int* iw,
bvec_t* w)
const override;
88 const std::vector<casadi_int>& arg,
89 const std::vector<casadi_int>& res,
90 const std::vector<bool>& arg_is_ref,
91 std::vector<bool>& res_is_ref)
const override;
125 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res,
126 const std::vector<bool>& unique={})
const override;
129 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
134 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
135 std::vector<std::vector<MX> >& fsens)
const override;
140 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
141 std::vector<std::vector<MX> >& asens)
const override;
146 std::string disp(
const std::vector<std::string>& arg)
const override;
151 void generate(CodeGenerator& g,
152 const std::vector<casadi_int>& arg,
153 const std::vector<casadi_int>& res,
154 const std::vector<bool>& arg_is_ref,
155 std::vector<bool>& res_is_ref)
const override;
160 void serialize_body(SerializingStream& s)
const override;
164 void serialize_type(SerializingStream& s)
const override;
169 explicit SetNonzerosParamVector(DeserializingStream& s);
180 size_t sz_iw()
const override;
192 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res,
193 const std::vector<bool>& unique={})
const override;
198 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
199 std::vector<std::vector<MX> >& fsens)
const override;
204 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
205 std::vector<std::vector<MX> >& asens)
const override;
208 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
213 std::string disp(
const std::vector<std::string>& arg)
const override;
218 void generate(CodeGenerator& g,
219 const std::vector<casadi_int>& arg,
220 const std::vector<casadi_int>& res,
221 const std::vector<bool>& arg_is_ref,
222 std::vector<bool>& res_is_ref)
const override;
258 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res,
259 const std::vector<bool>& unique={})
const override;
262 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
267 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
268 std::vector<std::vector<MX> >& fsens)
const override;
273 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
274 std::vector<std::vector<MX> >& asens)
const override;
279 std::string disp(
const std::vector<std::string>& arg)
const override;
284 void generate(CodeGenerator& g,
285 const std::vector<casadi_int>& arg,
286 const std::vector<casadi_int>& res,
287 const std::vector<bool>& arg_is_ref,
288 std::vector<bool>& res_is_ref)
const override;
316 size_t sz_iw()
const override;
328 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res,
329 const std::vector<bool>& unique={})
const override;
332 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
337 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
338 std::vector<std::vector<MX> >& fsens)
const override;
343 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
344 std::vector<std::vector<MX> >& asens)
const override;
349 std::string disp(
const std::vector<std::string>& arg)
const override;
354 void generate(CodeGenerator& g,
355 const std::vector<casadi_int>& arg,
356 const std::vector<casadi_int>& res,
357 const std::vector<bool>& arg_is_ref,
358 std::vector<bool>& res_is_ref)
const override;
363 void serialize_type(SerializingStream& s)
const override;
368 explicit SetNonzerosParamParam(DeserializingStream& s);
Helper class for C code generation.
Helper class for Serialization.
Node class for MX objects.
Helper class for Serialization.
SetNonzerosParamParam(const MX &y, const MX &x, const MX &inner, const MX &outer)
Constructor.
~SetNonzerosParamParam() override
Destructor.
~SetNonzerosParamSlice() override
Destructor.
SetNonzerosParamSlice(const MX &y, const MX &x, const MX &inner, const Slice &outer)
Constructor.
Add the nonzeros of a matrix to another matrix, parametrically.
~SetNonzerosParamVector() override
Destructor.
Assign or add entries to a matrix, parametrically.
casadi_int op() const override
Get the operation.
casadi_int n_inplace() const override
Can the operation be performed inplace (i.e. overwrite the result)
SetNonzerosParam(DeserializingStream &s)
Deserializing constructor.
~SetNonzerosSliceParam() override
Destructor.
SetNonzerosSliceParam(const MX &y, const MX &x, const Slice &inner, const MX &outer)
Constructor.
Class representing a Slice.
unsigned long long bvec_t