26 #ifndef CASADI_CALL_HPP
27 #define CASADI_CALL_HPP
29 #include "multiple_output.hpp"
30 #include "function.hpp"
45 static std::vector<MX> create(
const Function& fcn,
const std::vector<MX>& arg);
50 static MX create_call(
const Function& fcn,
const std::vector<MX>& arg);
55 MX get_output(casadi_int oind)
const override;
65 static MX projectArg(
const MX& x,
const Sparsity& sp, casadi_int i);
70 std::string disp(
const std::vector<std::string>& arg)
const override;
80 bool has_refcount()
const override;
85 void codegen_incref(
CodeGenerator& g, std::set<void*>& added)
const override;
90 void codegen_decref(
CodeGenerator& g, std::set<void*>& added)
const override;
96 const std::vector<casadi_int>& arg,
97 const std::vector<casadi_int>& res,
98 const std::vector<bool>& arg_is_ref,
99 std::vector<bool>& res_is_ref)
const override;
102 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
105 int eval_sx(
const SXElem** arg,
SXElem** res, casadi_int* iw,
SXElem* w)
const override;
110 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res)
const override;
115 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
116 std::vector<std::vector<MX> >& fsens)
const override;
121 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
122 std::vector<std::vector<MX> >& asens)
const override;
127 int sp_forward(
const bvec_t** arg,
bvec_t** res, casadi_int* iw,
bvec_t* w)
const override;
147 casadi_int nout()
const override;
152 const Sparsity& sparsity(casadi_int oind)
const override;
162 size_t sz_arg()
const override;
167 size_t sz_res()
const override;
172 size_t sz_iw()
const override;
177 size_t sz_w()
const override;
193 explicit Call(
const Function& fcn,
const std::vector<MX>& arg);
203 static MX common_cond(
const std::vector<std::vector<MX>>& seed);
casadi_int which_output() const override
Get function output.
casadi_int op() const override
Get the operation.
const Function & which_function() const override
Get called function.
WeakCache< casadi_int, MX > cache_
Output node cache.
~Call() override
Destructor.
static MXNode * deserialize(DeserializingStream &s)
Deserialize without type information.
Helper class for C code generation.
Helper class for Serialization.
Node class for MX objects.
The basic scalar symbolic class of CasADi.
Helper class for Serialization.
unsigned long long bvec_t