26 #ifndef CASADI_GETNONZEROS_PARAM_HPP
27 #define CASADI_GETNONZEROS_PARAM_HPP
29 #include "mx_node.hpp"
47 static MX create(
const MX& x,
const MX& nz);
48 static MX create(
const MX& x,
const MX& inner,
const Slice& outer);
49 static MX create(
const MX& x,
const Slice& inner,
const MX& outer);
50 static MX create(
const MX& x,
const MX& inner,
const MX& outer);
63 int sp_forward(
const bvec_t** arg,
bvec_t** res, casadi_int* iw,
bvec_t* w)
const override;
100 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
101 std::vector<std::vector<MX> >& fsens)
const override;
106 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
107 std::vector<std::vector<MX> >& asens)
const override;
110 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
115 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res)
const override;
120 std::string disp(
const std::vector<std::string>& arg)
const override;
126 const std::vector<casadi_int>& arg,
127 const std::vector<casadi_int>& res,
128 const std::vector<bool>& arg_is_ref,
129 std::vector<bool>& res_is_ref)
const override;
159 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
164 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res)
const override;
169 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
170 std::vector<std::vector<MX> >& fsens)
const override;
175 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
176 std::vector<std::vector<MX> >& asens)
const override;
181 std::string disp(
const std::vector<std::string>& arg)
const override;
187 const std::vector<casadi_int>& arg,
188 const std::vector<casadi_int>& res,
189 const std::vector<bool>& arg_is_ref,
190 std::vector<bool>& res_is_ref)
const override;
193 Dict info()
const override {
return {{
"inner", inner_.info()}}; }
219 const Slice& outer) :
228 size_t sz_iw()
const override;
231 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
236 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res)
const override;
241 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
242 std::vector<std::vector<MX> >& fsens)
const override;
247 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
248 std::vector<std::vector<MX> >& asens)
const override;
253 std::string disp(
const std::vector<std::string>& arg)
const override;
259 const std::vector<casadi_int>& arg,
260 const std::vector<casadi_int>& res,
261 const std::vector<bool>& arg_is_ref,
262 std::vector<bool>& res_is_ref)
const override;
265 Dict info()
const override {
return {{
"outer", outer_.info()}}; }
301 size_t sz_iw()
const override;
304 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
309 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res)
const override;
314 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
315 std::vector<std::vector<MX> >& fsens)
const override;
320 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
321 std::vector<std::vector<MX> >& asens)
const override;
326 std::string disp(
const std::vector<std::string>& arg)
const override;
332 const std::vector<casadi_int>& arg,
333 const std::vector<casadi_int>& res,
334 const std::vector<bool>& arg_is_ref,
335 std::vector<bool>& res_is_ref)
const override;
Helper class for C code generation.
Helper class for Serialization.
GetNonzerosParamParam(const Sparsity &sp, const MX &x, const MX &inner, const MX &outer)
Constructor.
~GetNonzerosParamParam() override
Destructor.
Dict info() const override
~GetNonzerosParamSlice() override
Destructor.
Dict info() const override
GetNonzerosParamSlice(const Sparsity &sp, const MX &x, const MX &inner, const Slice &outer)
Constructor.
~GetNonzerosParamVector() override
Destructor.
GetNonzerosParamVector(const MX &x, const MX &nz)
Constructor.
Get nonzeros of a matrix, parametrically.
casadi_int op() const override
Get the operation.
~GetNonzerosParam() override
Destructor.
GetNonzerosParam(DeserializingStream &s)
Deserializing constructor.
Dict info() const override
~GetNonzerosSliceParam() override
Destructor.
GetNonzerosSliceParam(const Sparsity &sp, const MX &x, const Slice &inner, const MX &outer)
Constructor.
Node class for MX objects.
Helper class for Serialization.
Class representing a Slice.
unsigned long long bvec_t
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.