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;
81 const std::vector<casadi_int>& arg,
82 const std::vector<casadi_int>& res,
83 const std::vector<bool>& arg_is_ref,
84 std::vector<bool>& res_is_ref)
const override;
87 int eval(
const double** arg,
double** res, casadi_int* iw,
double* w)
const override;
90 int eval_sx(
const SXElem** arg,
SXElem** res, casadi_int* iw,
SXElem* w)
const override;
95 void eval_mx(
const std::vector<MX>& arg, std::vector<MX>& res,
96 const std::vector<bool>& unique={})
const override;
101 void ad_forward(
const std::vector<std::vector<MX> >& fseed,
102 std::vector<std::vector<MX> >& fsens)
const override;
107 void ad_reverse(
const std::vector<std::vector<MX> >& aseed,
108 std::vector<std::vector<MX> >& asens)
const override;
113 int sp_forward(
const bvec_t** arg,
bvec_t** res, casadi_int* iw,
bvec_t* w)
const override;
118 int eval_activity(
const bvec_t** arg,
bvec_t** res, casadi_int* iw,
bvec_t* w)
const override;
138 casadi_int nout()
const override;
143 const Sparsity& sparsity(casadi_int oind)
const override;
153 size_t sz_arg()
const override;
158 size_t sz_res()
const override;
163 size_t sz_iw()
const override;
168 size_t sz_w()
const override;
184 explicit Call(
const Function& fcn,
const std::vector<MX>& arg);
194 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