List of all members | Public Types | Public Member Functions | Static Public Member Functions
casadi::Callback Class Reference

Callback function functionality. More...

#include <callback.hpp>

Detailed Description

This class provides a public API to the FunctionInternal class that can be subclassed by the user, who is then able to implement the different virtual method. Note that the Function class also provides a public API to FunctionInternal, but only allows calling, not being called.

The user is responsible for not deleting this class for the lifetime of the internal function object.

Author
Joris Gillis, Joel Andersson
Date
2015
Examples:
Function/callback.py, Function/callback_c.cc, and misc/assertion.py.

Definition at line 48 of file casadi/core/callback.hpp.

Inheritance diagram for casadi::Callback:
Inheritance graph
[legend]

Public Types

typedef std::map< std::string,
std::vector< std::string > > 
AuxOut
 

Public Member Functions

 Callback ()
 Default constructor. More...
 
 Callback (const Callback &obj)
 Copy constructor (throws an error) More...
 
void construct (const std::string &name, const Dict &opts=Dict())
 Construct internal object This is the step that actually construct the internal object, as the class constructor only creates a null pointer. It should be called from the user constructor. More...
 
virtual ~Callback ()
 Destructor. More...
 
virtual void init ()
 Initialize the object This function is called after the object construction (for the whole class hierarchy) is complete, but before the finalization step. It is called recursively for the whole class hierarchy, starting with the lowest level. More...
 
virtual void finalize ()
 Finalize the object This function is called after the construction and init steps are completed, but before user functions are called. It is called recursively for the whole class hierarchy, starting with the highest level. More...
 
virtual std::vector< DMeval (const std::vector< DM > &arg)
 Evaluate numerically, temporary matrices and work vectors. More...
 
virtual int get_n_in ()
 Get the number of inputs This function is called during construction. More...
 
virtual int get_n_out ()
 Get the number of outputs This function is called during construction. More...
 
virtual Sparsity get_sparsity_in (int i)
 Get the sparsity of an input This function is called during construction. More...
 
virtual Sparsity get_sparsity_out (int i)
 Get the sparsity of an output This function is called during construction. More...
 
virtual std::string get_name_in (int i)
 Get the sparsity of an input This function is called during construction. More...
 
virtual std::string get_name_out (int i)
 Get the sparsity of an output This function is called during construction. More...
 
int n_in () const
 Get the number of function inputs. More...
 
int n_out () const
 Get the number of function outputs. More...
 
std::vector< std::string > name_in () const
 Get input scheme. More...
 
std::string name_in (int ind) const
 Get input scheme name by index. More...
 
std::vector< std::string > name_out () const
 Get output scheme. More...
 
std::string name_out (int ind) const
 Get output scheme name by index. More...
 
int index_in (const std::string &name) const
 Find the index for a string describing a particular entry of an input scheme. More...
 
int index_out (const std::string &name) const
 Find the index for a string describing a particular entry of an output scheme. More...
 
double default_in (int ind) const
 Get default input value (NOTE: constant reference) More...
 
Function factory (const std::string &name, const std::vector< std::string > &s_in, const std::vector< std::string > &s_out, const AuxOut &aux=AuxOut(), const Dict &opts=Dict()) const
 
Function oracle () const
 Get oracle. More...
 
Function wrap () const
 Wrap in an Function instance consisting of only one MX call. More...
 
std::vector< bool > which_depends (const std::string &s_in, const std::vector< std::string > &s_out, int order=1, bool tr=false) const
 Which variables enter with some order. More...
 
void print_dimensions (std::ostream &stream=casadi::userOut()) const
 Print dimensions of inputs and outputs. More...
 
void print_options (std::ostream &stream=casadi::userOut()) const
 Print options to a stream. More...
 
void print_option (const std::string &name, std::ostream &stream=casadi::userOut()) const
 Print all information there is to know about a certain option. More...
 
void print_free (std::ostream &stream=casadi::userOut()) const
 Print free variables. More...
 
void setJacobian (const Function &jac, int iind=0, int oind=0, bool compact=false)
 
void setFullJacobian (const Function &jac)
 
std::vector< MXmapsum (const std::vector< MX > &arg, const std::string &parallelization="serial") const
 Evaluate symbolically in parallel and sum (matrix graph) More...
 
Function map (int n, const std::string &parallelization="serial") const
 Create a mapped version of this function. More...
 
Function slice (const std::string &name, const std::vector< int > &order_in, const std::vector< int > &order_out, const Dict &opts=Dict()) const
 returns a new function with a selection of inputs/outputs of the original More...
 
Function forward (int nfwd) const
 Get a function that calculates nfwd forward derivatives. More...
 
Function reverse (int nadj) const
 Get a function that calculates nadj adjoint derivatives. More...
 
const Sparsity sparsity_jac (int iind=0) const
 
std::string generate (const std::string &fname, const Dict &opts=Dict()) const
 Export / Generate C code for the function. More...
 
std::string generate (const Dict &opts=Dict()) const
 Export / Generate C code for the function. More...
 
std::string generate_dependencies (const std::string &fname, const Dict &opts=Dict()) const
 Export / Generate C code for the dependency function. More...
 
Dict stats (int mem=0) const
 Get all statistics obtained at the end of the last evaluate call. More...
 
std::vector< SXfree_sx () const
 Get all the free variables of the function. More...
 
std::vector< MXfree_mx () const
 Get all the free variables of the function. More...
 
bool has_free () const
 Does the function have free variables. More...
 
void generate_lifted (Function &output_vdef_fcn, Function &output_vinit_fcn) const
 Extract the functions needed for the Lifted Newton method. More...
 
int getAlgorithmSize () const
 Get the number of atomic operations. More...
 
int getWorkSize () const
 Get the length of the work vector. More...
 
int getAtomicOperation (int k) const
 Get an atomic operation operator index. More...
 
std::pair< int, int > getAtomicInput (int k) const
 Get the (integer) input arguments of an atomic operation. More...
 
double getAtomicInputReal (int k) const
 Get the floating point output argument of an atomic operation. More...
 
int getAtomicOutput (int k) const
 Get the (integer) output argument of an atomic operation. More...
 
int n_nodes () const
 Number of nodes in the algorithm. More...
 
std::string name () const
 Name of the function. More...
 
std::string type_name () const
 Get type name. More...
 
bool is_a (const std::string &type, bool recursive=true) const
 Check if the function is of a particular type Optionally check if name matches one of the base classes (default true) More...
 
void assert_size_in (int i, int nrow, int ncol) const
 Assert that an input dimension is equal so some given value. More...
 
void assert_size_out (int i, int nrow, int ncol) const
 Assert that an output dimension is equal so some given value. More...
 
int checkout () const
 Checkout a memory object. More...
 
void release (int mem) const
 Release a memory object. More...
 
std::vector< std::string > get_function () const
 
Function get_function (const std::string &name) const
 
bool has_function (const std::string &fname) const
 
Function rootfinder_fun () const
 
void conic_debug (const std::string &filename) const
 
void conic_debug (std::ostream &file) const
 
void repr (std::ostream &stream=casadi::userOut(), bool trailing_newline=true) const
 Print a representation of the object. More...
 
void print (std::ostream &stream=casadi::userOut(), bool trailing_newline=true) const
 Print a description of the object. More...
 
bool is_null () const
 Is a null pointer? More...
 
size_t __hash__ () const
 Returns a number that is unique for a given Node. If the Object does not point to any node, "0" is returned. More...
 
std::string getDescription () const
 Return a string with a description (for SWIG) More...
 
std::string getRepresentation () const
 Return a string with a representation (for SWIG) More...
 
virtual bool has_jacobian () const
 Return Jacobian of all input elements with respect to all output elements. More...
 
virtual Function get_jacobian (const std::string &name, const Dict &opts)
 Return Jacobian of all input elements with respect to all output elements. More...
 
virtual Function get_forward (const std::string &name, int nfwd, const std::vector< std::string > &i_names, const std::vector< std::string > &o_names, const Dict &opts) const
 Return function that calculates forward derivatives forward(nfwd) returns a cached instance if available, and calls Function get_forward(int nfwd) if no cached version is available. More...
 
virtual int get_n_forward () const
 Return function that calculates forward derivatives forward(nfwd) returns a cached instance if available, and calls Function get_forward(int nfwd) if no cached version is available. More...
 
virtual Function get_reverse (const std::string &name, int nadj, const std::vector< std::string > &i_names, const std::vector< std::string > &o_names, const Dict &opts) const
 Return function that calculates adjoint derivatives reverse(nadj) returns a cached instance if available, and calls Function get_reverse(int nadj) if no cached version is available. More...
 
virtual int get_n_reverse () const
 Return function that calculates adjoint derivatives reverse(nadj) returns a cached instance if available, and calls Function get_reverse(int nadj) if no cached version is available. More...
 
virtual void alloc_w (size_t sz_w, bool persist=false)
 Allocate work vectors. More...
 
virtual void alloc_iw (size_t sz_iw, bool persist=false)
 Allocate work vectors. More...
 
virtual void alloc_arg (size_t sz_arg, bool persist=false)
 Allocate work vectors. More...
 
virtual void alloc_res (size_t sz_res, bool persist=false)
 Allocate work vectors. More...
 
Function expand () const
 Expand a function to SX. More...
 
Function expand (const std::string &name, const Dict &opts=Dict()) const
 Expand a function to SX. More...
 
int size1_in (int ind) const
 Get input dimension. More...
 
int size1_in (const std::string &iname) const
 Get input dimension. More...
 
int size2_in (int ind) const
 Get input dimension. More...
 
int size2_in (const std::string &iname) const
 Get input dimension. More...
 
std::pair< int, int > size_in (int ind) const
 Get input dimension. More...
 
std::pair< int, int > size_in (const std::string &iname) const
 Get input dimension. More...
 
int size1_out (int ind) const
 Get output dimension. More...
 
int size1_out (const std::string &oname) const
 Get output dimension. More...
 
int size2_out (int ind) const
 Get output dimension. More...
 
int size2_out (const std::string &oname) const
 Get output dimension. More...
 
std::pair< int, int > size_out (int ind) const
 Get output dimension. More...
 
std::pair< int, int > size_out (const std::string &oname) const
 Get output dimension. More...
 
int nnz_in () const
 Get number of input nonzeros. More...
 
int nnz_in (int ind) const
 Get number of input nonzeros. More...
 
int nnz_in (const std::string &iname) const
 Get number of input nonzeros. More...
 
int nnz_out () const
 Get number of output nonzeros. More...
 
int nnz_out (int ind) const
 Get number of output nonzeros. More...
 
int nnz_out (const std::string &oname) const
 Get number of output nonzeros. More...
 
int numel_in () const
 Get number of input elements. More...
 
int numel_in (int ind) const
 Get number of input elements. More...
 
int numel_in (const std::string &iname) const
 Get number of input elements. More...
 
int numel_out () const
 Get number of output elements. More...
 
int numel_out (int ind) const
 Get number of output elements. More...
 
int numel_out (const std::string &oname) const
 Get number of output elements. More...
 
const Sparsitysparsity_in (int ind) const
 Get sparsity of a given input. More...
 
const Sparsitysparsity_in (const std::string &iname) const
 Get sparsity of a given input. More...
 
const Sparsitysparsity_out (int ind) const
 Get sparsity of a given output. More...
 
const Sparsitysparsity_out (const std::string &iname) const
 Get sparsity of a given output. More...
 
Function jacobian_old (int iind, int oind, bool compact=false, bool symmetric=false)
 Generate a Jacobian function of output oind with respect to input iind. More...
 
Function hessian_old (int iind, int oind)
 Generate a Hessian function of output oind with respect to input iind. More...
 
Function fullJacobian ()
 Generate a Jacobian function of all the inputs elements with respect to all the output elements). Legacy function: To be deprecated. More...
 
Function jacobian (int iind=0, int oind=0, bool compact=false, bool symmetric=false)
 [DEPRECATED] Alias of Function::jacobian_old This function is of internal character and should be avoided, if possible. The preferred way is to use unction::factory instead. This function will change behavior in the next version of CasADi. More...
 
Function jacobian (const std::string &iind, int oind=0, bool compact=false, bool symmetric=false)
 Generate a Jacobian function of output oind with respect to input iind. More...
 
Function jacobian (int iind, const std::string &oind, bool compact=false, bool symmetric=false)
 Generate a Jacobian function of output oind with respect to input iind. More...
 
Function jacobian (const std::string &iind, const std::string &oind, bool compact=false, bool symmetric=false)
 Generate a Jacobian function of output oind with respect to input iind. More...
 
Function gradient (int iind=0, int oind=0)
 [DEPRECATED] Use Function::factory instead More...
 
Function gradient (const std::string &iind, int oind=0)
 [DEPRECATED] Use Function::factory instead More...
 
Function gradient (int iind, const std::string &oind)
 [DEPRECATED] Use Function::factory instead More...
 
Function gradient (const std::string &iind, const std::string &oind)
 [DEPRECATED] Use Function::factory instead More...
 
Function tangent (int iind=0, int oind=0)
 [DEPRECATED] Use Function::factory instead More...
 
Function tangent (const std::string &iind, int oind=0)
 [DEPRECATED] Use Function::factory instead More...
 
Function tangent (int iind, const std::string &oind)
 [DEPRECATED] Use Function::factory instead More...
 
Function tangent (const std::string &iind, const std::string &oind)
 [DEPRECATED] Use Function::factory instead More...
 
Function hessian (int iind=0, int oind=0)
 [DEPRECATED] Alias of Function::jacobian_old This function is of internal character and should be avoided, if possible. The preferred way is to use unction::factory instead. This function will change behavior in the next version of CasADi. More...
 
Function hessian (const std::string &iind, int oind=0)
 [DEPRECATED] Alias of Function::jacobian_old This function is of internal character and should be avoided, if possible. The preferred way is to use unction::factory instead. This function will change behavior in the next version of CasADi. More...
 
Function hessian (int iind, const std::string &oind)
 [DEPRECATED] Alias of Function::jacobian_old This function is of internal character and should be avoided, if possible. The preferred way is to use unction::factory instead. This function will change behavior in the next version of CasADi. More...
 
Function hessian (const std::string &iind, const std::string &oind)
 [DEPRECATED] Alias of Function::jacobian_old This function is of internal character and should be avoided, if possible. The preferred way is to use unction::factory instead. This function will change behavior in the next version of CasADi. More...
 
void call (const std::vector< DM > &arg, std::vector< DM > &output_res, bool always_inline=false, bool never_inline=false) const
 Evaluate the function symbolically or numerically. More...
 
void call (const std::vector< SX > &arg, std::vector< SX > &output_res, bool always_inline=false, bool never_inline=false) const
 Evaluate the function symbolically or numerically. More...
 
void call (const std::vector< MX > &arg, std::vector< MX > &output_res, bool always_inline=false, bool never_inline=false) const
 Evaluate the function symbolically or numerically. More...
 
void call (const DMDict &arg, DMDict &output_res, bool always_inline=false, bool never_inline=false) const
 Evaluate the function symbolically or numerically. More...
 
void call (const SXDict &arg, SXDict &output_res, bool always_inline=false, bool never_inline=false) const
 Evaluate the function symbolically or numerically. More...
 
void call (const MXDict &arg, MXDict &output_res, bool always_inline=false, bool never_inline=false) const
 Evaluate the function symbolically or numerically. More...
 
Function mapaccum (const std::string &name, int n, int n_accum=1, const Dict &opts=Dict()) const
 Create a mapaccumulated version of this function. More...
 
Function mapaccum (const std::string &name, int n, const std::vector< int > &accum_in, const std::vector< int > &accum_out, const Dict &opts=Dict()) const
 Create a mapaccumulated version of this function. More...
 
Function mapaccum (const std::string &name, int n, const std::vector< std::string > &accum_in, const std::vector< std::string > &accum_out, const Dict &opts=Dict()) const
 Create a mapaccumulated version of this function. More...
 
Function map (const std::string &name, const std::string &parallelization, int n, const std::vector< int > &reduce_in, const std::vector< int > &reduce_out, const Dict &opts=Dict()) const
 Map with reduction A subset of the inputs are non-repeated and a subset of the outputs summed up. More...
 
Function map (const std::string &name, const std::string &parallelization, int n, const std::vector< std::string > &reduce_in, const std::vector< std::string > &reduce_out, const Dict &opts=Dict()) const
 Map with reduction A subset of the inputs are non-repeated and a subset of the outputs summed up. More...
 
const Sparsity sparsity_jac (int iind, int oind, bool compact=false, bool symmetric=false) const
 
const Sparsity sparsity_jac (const std::string &iind, int oind=0, bool compact=false, bool symmetric=false) const
 
const Sparsity sparsity_jac (int iind, const std::string &oind, bool compact=false, bool symmetric=false) const
 
const Sparsity sparsity_jac (const std::string &iind, const std::string &oind, bool compact=false, bool symmetric=false) const
 
void set_jac_sparsity (const Sparsity &sp, int iind, int oind, bool compact=false)
 
void set_jac_sparsity (const Sparsity &sp, const std::string &iind, int oind, bool compact=false)
 
void set_jac_sparsity (const Sparsity &sp, int iind, const std::string &oind, bool compact=false)
 
void set_jac_sparsity (const Sparsity &sp, const std::string &iind, const std::string &oind, bool compact=false)
 
const SX sx_in (int iind) const
 Get symbolic primitives equivalent to the input expressions There is no guarantee that subsequent calls return unique answers. More...
 
const SX sx_in (const std::string &iname) const
 Get symbolic primitives equivalent to the input expressions There is no guarantee that subsequent calls return unique answers. More...
 
const std::vector< SXsx_in () const
 Get symbolic primitives equivalent to the input expressions There is no guarantee that subsequent calls return unique answers. More...
 
const MX mx_in (int ind) const
 Get symbolic primitives equivalent to the input expressions There is no guarantee that subsequent calls return unique answers. More...
 
const MX mx_in (const std::string &iname) const
 Get symbolic primitives equivalent to the input expressions There is no guarantee that subsequent calls return unique answers. More...
 
const std::vector< MXmx_in () const
 Get symbolic primitives equivalent to the input expressions There is no guarantee that subsequent calls return unique answers. More...
 
const SX sx_out (int oind) const
 Get symbolic primitives equivalent to the output expressions There is no guarantee that subsequent calls return unique answers. More...
 
const SX sx_out (const std::string &oname) const
 Get symbolic primitives equivalent to the output expressions There is no guarantee that subsequent calls return unique answers. More...
 
const std::vector< SXsx_out () const
 Get symbolic primitives equivalent to the output expressions There is no guarantee that subsequent calls return unique answers. More...
 
const MX mx_out (int ind) const
 Get symbolic primitives equivalent to the output expressions There is no guarantee that subsequent calls return unique answers. More...
 
const MX mx_out (const std::string &oname) const
 Get symbolic primitives equivalent to the output expressions There is no guarantee that subsequent calls return unique answers. More...
 
const std::vector< MXmx_out () const
 Get symbolic primitives equivalent to the output expressions There is no guarantee that subsequent calls return unique answers. More...
 

Static Public Member Functions

static Function create (const std::string &name, Callback *n, const Dict &opts=Dict())
 Create an owning reference, given a pointer to a derived object. More...
 
static Function conditional (const std::string &name, const std::vector< Function > &f, const Function &f_def, const Dict &opts=Dict())
 Constuct a switch function. More...
 
static Function bspline (const std::string &name, const std::vector< std::vector< double > > &knots, const std::vector< double > &coeffs, const std::vector< int > &degree, int m=1, const Dict &opts=Dict())
 BSpline evaluator function. More...
 
static Function bspline_dual (const std::string &name, const std::vector< std::vector< double > > &knots, const std::vector< double > &x, const std::vector< int > &degree, int m=1, bool reverse=false, const Dict &opts=Dict())
 Dual BSpline evaluator function. More...
 
static Function if_else (const std::string &name, const Function &f_true, const Function &f_false, const Dict &opts=Dict())
 Constructor (if-else) More...
 
static bool check_name (const std::string &name)
 Check if a string is a valid function name Valid function names consist of. More...
 
static std::string fix_name (const std::string &name)
 Turn a string into a valid function name as defined by "check_name" Non-alphanumeric characters are converted into underscores and multiple consecutive undercores are dropped. More...
 

Member Typedef Documentation

typedef std::map<std::string, std::vector<std::string> > casadi::Function::AuxOut
inherited

Definition at line 290 of file function.hpp.

Constructor & Destructor Documentation

casadi::Callback::Callback ( )
casadi::Callback::Callback ( const Callback obj)
virtual casadi::Callback::~Callback ( )
virtual

Member Function Documentation

size_t casadi::SharedObject::__hash__ ( ) const
inherited
virtual void casadi::Callback::alloc_arg ( size_t  sz_arg,
bool  persist = false 
)
virtual
virtual void casadi::Callback::alloc_iw ( size_t  sz_iw,
bool  persist = false 
)
virtual
virtual void casadi::Callback::alloc_res ( size_t  sz_res,
bool  persist = false 
)
virtual
virtual void casadi::Callback::alloc_w ( size_t  sz_w,
bool  persist = false 
)
virtual
void casadi::Function::assert_size_in ( int  i,
int  nrow,
int  ncol 
) const
inherited
void casadi::Function::assert_size_out ( int  i,
int  nrow,
int  ncol 
) const
inherited
static Function casadi::Function::bspline ( const std::string &  name,
const std::vector< std::vector< double > > &  knots,
const std::vector< double > &  coeffs,
const std::vector< int > &  degree,
int  m = 1,
const Dict opts = Dict() 
)
staticinherited

Requires a known coefficient tensor

static Function casadi::Function::bspline_dual ( const std::string &  name,
const std::vector< std::vector< double > > &  knots,
const std::vector< double > &  x,
const std::vector< int > &  degree,
int  m = 1,
bool  reverse = false,
const Dict opts = Dict() 
)
staticinherited

Requires known evaluation positions WARNING: This function may drastically change or be removed

void casadi::Function::call ( const std::vector< DM > &  arg,
std::vector< DM > &  output_res,
bool  always_inline = false,
bool  never_inline = false 
) const
inherited
void casadi::Function::call ( const std::vector< SX > &  arg,
std::vector< SX > &  output_res,
bool  always_inline = false,
bool  never_inline = false 
) const
inherited
void casadi::Function::call ( const std::vector< MX > &  arg,
std::vector< MX > &  output_res,
bool  always_inline = false,
bool  never_inline = false 
) const
inherited
void casadi::Function::call ( const DMDict arg,
DMDict output_res,
bool  always_inline = false,
bool  never_inline = false 
) const
inherited
void casadi::Function::call ( const SXDict arg,
SXDict output_res,
bool  always_inline = false,
bool  never_inline = false 
) const
inherited
void casadi::Function::call ( const MXDict arg,
MXDict output_res,
bool  always_inline = false,
bool  never_inline = false 
) const
inherited
static bool casadi::Function::check_name ( const std::string &  name)
staticinherited
  • At least one character
  • Upper and lower case letters: a-zA-Z
  • Numbers 0-9, but never as first character
  • Underscore, but never as first character and never next to another underscore

May not be one of the following keywords: "null", "jac", "hess"

int casadi::Function::checkout ( ) const
inherited
static Function casadi::Function::conditional ( const std::string &  name,
const std::vector< Function > &  f,
const Function f_def,
const Dict opts = Dict() 
)
staticinherited
void casadi::Function::conic_debug ( const std::string &  filename) const
inherited

Generate native code in the interfaced language for debugging

void casadi::Function::conic_debug ( std::ostream &  file) const
inherited

Generate native code in the interfaced language for debugging

void casadi::Callback::construct ( const std::string &  name,
const Dict opts = Dict() 
)
static Function casadi::Callback::create ( const std::string &  name,
Callback n,
const Dict opts = Dict() 
)
static
double casadi::Function::default_in ( int  ind) const
inherited
virtual std::vector<DM> casadi::Callback::eval ( const std::vector< DM > &  arg)
virtual
Function casadi::Function::expand ( ) const
inherited
Function casadi::Function::expand ( const std::string &  name,
const Dict opts = Dict() 
) const
inherited
Function casadi::Function::factory ( const std::string &  name,
const std::vector< std::string > &  s_in,
const std::vector< std::string > &  s_out,
const AuxOut aux = AuxOut(),
const Dict opts = Dict() 
) const
inherited
virtual void casadi::Callback::finalize ( )
inlinevirtual

Definition at line 95 of file casadi/core/callback.hpp.

static std::string casadi::Function::fix_name ( const std::string &  name)
staticinherited
Function casadi::Function::forward ( int  nfwd) const
inherited

Returns a function with n_in + n_out + n_in inputs and nfwd outputs. The first n_in inputs correspond to nondifferentiated inputs. The next n_out inputs correspond to nondifferentiated outputs. and the last n_in inputs correspond to forward seeds, stacked horizontally The n_out outputs correspond to forward sensitivities, stacked horizontally. * (n_in = n_in(), n_out = n_out())

The functions returned are cached, meaning that if called multiple timed with the same value, then multiple references to the same function will be returned.

std::vector<MX> casadi::Function::free_mx ( ) const
inherited
std::vector<SX> casadi::Function::free_sx ( ) const
inherited
Function casadi::Function::fullJacobian ( )
inherited
std::string casadi::Function::generate ( const std::string &  fname,
const Dict opts = Dict() 
) const
inherited
Examples:
SX/generateCode.py.
std::string casadi::Function::generate ( const Dict opts = Dict()) const
inherited
std::string casadi::Function::generate_dependencies ( const std::string &  fname,
const Dict opts = Dict() 
) const
inherited
void casadi::Function::generate_lifted ( Function output_vdef_fcn,
Function output_vinit_fcn 
) const
inherited
virtual Function casadi::Callback::get_forward ( const std::string &  name,
int  nfwd,
const std::vector< std::string > &  i_names,
const std::vector< std::string > &  o_names,
const Dict opts 
) const
virtual
std::vector<std::string> casadi::Function::get_function ( ) const
inherited
Function casadi::Function::get_function ( const std::string &  name) const
inherited
virtual Function casadi::Callback::get_jacobian ( const std::string &  name,
const Dict opts 
)
virtual
virtual int casadi::Callback::get_n_forward ( ) const
virtual
virtual int casadi::Callback::get_n_in ( )
virtual
virtual int casadi::Callback::get_n_out ( )
virtual
virtual int casadi::Callback::get_n_reverse ( ) const
virtual
virtual std::string casadi::Callback::get_name_in ( int  i)
virtual
virtual std::string casadi::Callback::get_name_out ( int  i)
virtual
virtual Function casadi::Callback::get_reverse ( const std::string &  name,
int  nadj,
const std::vector< std::string > &  i_names,
const std::vector< std::string > &  o_names,
const Dict opts 
) const
virtual
virtual Sparsity casadi::Callback::get_sparsity_in ( int  i)
virtual
virtual Sparsity casadi::Callback::get_sparsity_out ( int  i)
virtual
int casadi::Function::getAlgorithmSize ( ) const
inherited
std::pair<int, int> casadi::Function::getAtomicInput ( int  k) const
inherited
double casadi::Function::getAtomicInputReal ( int  k) const
inherited
int casadi::Function::getAtomicOperation ( int  k) const
inherited
int casadi::Function::getAtomicOutput ( int  k) const
inherited
std::string casadi::PrintableObject< SharedObject >::getDescription ( ) const
inlineinherited

Definition at line 48 of file printable_object.hpp.

std::string casadi::PrintableObject< SharedObject >::getRepresentation ( ) const
inlineinherited

Definition at line 55 of file printable_object.hpp.

int casadi::Function::getWorkSize ( ) const
inherited
Function casadi::Function::gradient ( int  iind = 0,
int  oind = 0 
)
inherited
Function casadi::Function::gradient ( const std::string &  iind,
int  oind = 0 
)
inlineinherited

Definition at line 383 of file function.hpp.

Function casadi::Function::gradient ( int  iind,
const std::string &  oind 
)
inlineinherited

Definition at line 386 of file function.hpp.

Function casadi::Function::gradient ( const std::string &  iind,
const std::string &  oind 
)
inlineinherited

Definition at line 389 of file function.hpp.

bool casadi::Function::has_free ( ) const
inherited
bool casadi::Function::has_function ( const std::string &  fname) const
inherited
virtual bool casadi::Callback::has_jacobian ( ) const
virtual
Function casadi::Function::hessian ( int  iind = 0,
int  oind = 0 
)
inlineinherited

Definition at line 407 of file function.hpp.

Function casadi::Function::hessian ( const std::string &  iind,
int  oind = 0 
)
inlineinherited

Definition at line 410 of file function.hpp.

Function casadi::Function::hessian ( int  iind,
const std::string &  oind 
)
inlineinherited

Definition at line 412 of file function.hpp.

Function casadi::Function::hessian ( const std::string &  iind,
const std::string &  oind 
)
inlineinherited

Definition at line 414 of file function.hpp.

Function casadi::Function::hessian_old ( int  iind,
int  oind 
)
inherited
Parameters
iindThe index of the input
oindThe index of the output Legacy function: To be deprecated in a future version of CasADi. Exists only for compatibility with Function::hessian pre-CasADi 3.2
static Function casadi::Function::if_else ( const std::string &  name,
const Function f_true,
const Function f_false,
const Dict opts = Dict() 
)
staticinherited
int casadi::Function::index_in ( const std::string &  name) const
inherited

example: schemeEntry("x_opt") -> returns NLPSOL_X if FunctionInternal adheres to SCHEME_NLPINput

int casadi::Function::index_out ( const std::string &  name) const
inherited

example: schemeEntry("x_opt") -> returns NLPSOL_X if FunctionInternal adheres to SCHEME_NLPINput

virtual void casadi::Callback::init ( )
inlinevirtual

Definition at line 87 of file casadi/core/callback.hpp.

bool casadi::Function::is_a ( const std::string &  type,
bool  recursive = true 
) const
inherited
bool casadi::SharedObject::is_null ( ) const
inherited
Function casadi::Function::jacobian ( int  iind = 0,
int  oind = 0,
bool  compact = false,
bool  symmetric = false 
)
inlineinherited

Definition at line 356 of file function.hpp.

Function casadi::Function::jacobian ( const std::string &  iind,
int  oind = 0,
bool  compact = false,
bool  symmetric = false 
)
inlineinherited
Parameters
iindThe index of the input
oindThe index of the output Legacy function: To be deprecated in a future version of CasADi. Exists only for compatibility with Function::jacobian pre-CasADi 3.2

Definition at line 359 of file function.hpp.

Function casadi::Function::jacobian ( int  iind,
const std::string &  oind,
bool  compact = false,
bool  symmetric = false 
)
inlineinherited
Parameters
iindThe index of the input
oindThe index of the output Legacy function: To be deprecated in a future version of CasADi. Exists only for compatibility with Function::jacobian pre-CasADi 3.2

Definition at line 363 of file function.hpp.

Function casadi::Function::jacobian ( const std::string &  iind,
const std::string &  oind,
bool  compact = false,
bool  symmetric = false 
)
inlineinherited
Parameters
iindThe index of the input
oindThe index of the output Legacy function: To be deprecated in a future version of CasADi. Exists only for compatibility with Function::jacobian pre-CasADi 3.2

Definition at line 366 of file function.hpp.

Function casadi::Function::jacobian_old ( int  iind,
int  oind,
bool  compact = false,
bool  symmetric = false 
)
inherited
Parameters
iindThe index of the input
oindThe index of the output Legacy function: To be deprecated in a future version of CasADi. Exists only for compatibility with Function::jacobian pre-CasADi 3.2
Function casadi::Function::map ( int  n,
const std::string &  parallelization = "serial" 
) const
inherited

Suppose the function has a signature of:

   f: (a, p) -> ( s )

The the mapped version has the signature:

   F: (A, P) -> (S )

    with
        A: horzcat([a0, a1, ..., a_(N-1)])
        P: horzcat([p0, p1, ..., p_(N-1)])
        S: horzcat([s0, s1, ..., s_(N-1)])
    and
        s0 <- f(a0, p0)
        s1 <- f(a1, p1)
        ...
        s_(N-1) <- f(a_(N-1), p_(N-1))
Parameters
parallelizationType of parallelization used: unroll|serial|openmp
Function casadi::Function::map ( const std::string &  name,
const std::string &  parallelization,
int  n,
const std::vector< int > &  reduce_in,
const std::vector< int > &  reduce_out,
const Dict opts = Dict() 
) const
inherited
Function casadi::Function::map ( const std::string &  name,
const std::string &  parallelization,
int  n,
const std::vector< std::string > &  reduce_in,
const std::vector< std::string > &  reduce_out,
const Dict opts = Dict() 
) const
inherited
Function casadi::Function::mapaccum ( const std::string &  name,
int  n,
int  n_accum = 1,
const Dict opts = Dict() 
) const
inherited

Suppose the function has a signature of:

   f: (x, u) -> (x_next , y )

The the mapaccumulated version has the signature:

   F: (x0, U) -> (X , Y )

    with
        U: horzcat([u0, u1, ..., u_(N-1)])
        X: horzcat([x1, x2, ..., x_N])
        Y: horzcat([y0, y1, ..., y_(N-1)])

    and
        x1, y0 <- f(x0, u0)
        x2, y1 <- f(x1, u1)
        ...
        x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
Function casadi::Function::mapaccum ( const std::string &  name,
int  n,
const std::vector< int > &  accum_in,
const std::vector< int > &  accum_out,
const Dict opts = Dict() 
) const
inherited

Suppose the function has a signature of:

   f: (x, u) -> (x_next , y )

The the mapaccumulated version has the signature:

   F: (x0, U) -> (X , Y )

    with
        U: horzcat([u0, u1, ..., u_(N-1)])
        X: horzcat([x1, x2, ..., x_N])
        Y: horzcat([y0, y1, ..., y_(N-1)])

    and
        x1, y0 <- f(x0, u0)
        x2, y1 <- f(x1, u1)
        ...
        x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
Function casadi::Function::mapaccum ( const std::string &  name,
int  n,
const std::vector< std::string > &  accum_in,
const std::vector< std::string > &  accum_out,
const Dict opts = Dict() 
) const
inherited

Suppose the function has a signature of:

   f: (x, u) -> (x_next , y )

The the mapaccumulated version has the signature:

   F: (x0, U) -> (X , Y )

    with
        U: horzcat([u0, u1, ..., u_(N-1)])
        X: horzcat([x1, x2, ..., x_N])
        Y: horzcat([y0, y1, ..., y_(N-1)])

    and
        x1, y0 <- f(x0, u0)
        x2, y1 <- f(x1, u1)
        ...
        x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
std::vector<MX> casadi::Function::mapsum ( const std::vector< MX > &  arg,
const std::string &  parallelization = "serial" 
) const
inherited
Parameters
parallelizationType of parallelization used: unroll|serial|openmp
const MX casadi::Function::mx_in ( int  ind) const
inherited
const MX casadi::Function::mx_in ( const std::string &  iname) const
inlineinherited

Definition at line 754 of file function.hpp.

const std::vector<MX> casadi::Function::mx_in ( ) const
inherited
const MX casadi::Function::mx_out ( int  ind) const
inherited
const MX casadi::Function::mx_out ( const std::string &  oname) const
inlineinherited

Definition at line 770 of file function.hpp.

const std::vector<MX> casadi::Function::mx_out ( ) const
inherited
int casadi::Function::n_in ( ) const
inherited
int casadi::Function::n_nodes ( ) const
inherited
int casadi::Function::n_out ( ) const
inherited
std::string casadi::Function::name ( ) const
inherited
std::vector<std::string> casadi::Function::name_in ( ) const
inherited
std::string casadi::Function::name_in ( int  ind) const
inherited
std::vector<std::string> casadi::Function::name_out ( ) const
inherited
std::string casadi::Function::name_out ( int  ind) const
inherited
int casadi::Function::nnz_in ( ) const
inherited

For a particular input or for all of the inputs

int casadi::Function::nnz_in ( int  ind) const
inherited

For a particular input or for all of the inputs

int casadi::Function::nnz_in ( const std::string &  iname) const
inlineinherited

For a particular input or for all of the inputs

Definition at line 215 of file function.hpp.

int casadi::Function::nnz_out ( ) const
inherited

For a particular output or for all of the outputs

int casadi::Function::nnz_out ( int  ind) const
inherited

For a particular output or for all of the outputs

int casadi::Function::nnz_out ( const std::string &  oname) const
inlineinherited

For a particular output or for all of the outputs

Definition at line 225 of file function.hpp.

int casadi::Function::numel_in ( ) const
inherited

For a particular input or for all of the inputs

int casadi::Function::numel_in ( int  ind) const
inherited

For a particular input or for all of the inputs

int casadi::Function::numel_in ( const std::string &  iname) const
inlineinherited

For a particular input or for all of the inputs

Definition at line 235 of file function.hpp.

int casadi::Function::numel_out ( ) const
inherited

For a particular output or for all of the outputs

int casadi::Function::numel_out ( int  ind) const
inherited

For a particular output or for all of the outputs

int casadi::Function::numel_out ( const std::string &  oname) const
inlineinherited

For a particular output or for all of the outputs

Definition at line 245 of file function.hpp.

Function casadi::Function::oracle ( ) const
inherited
void casadi::SharedObject::print ( std::ostream &  stream = casadi::userOut(),
bool  trailing_newline = true 
) const
inherited
Examples:
SX/generateCode.py.
void casadi::Function::print_dimensions ( std::ostream &  stream = casadi::userOut()) const
inherited
void casadi::Function::print_free ( std::ostream &  stream = casadi::userOut()) const
inherited
void casadi::Function::print_option ( const std::string &  name,
std::ostream &  stream = casadi::userOut() 
) const
inherited
void casadi::Function::print_options ( std::ostream &  stream = casadi::userOut()) const
inherited
void casadi::Function::release ( int  mem) const
inherited
void casadi::SharedObject::repr ( std::ostream &  stream = casadi::userOut(),
bool  trailing_newline = true 
) const
inherited
Examples:
SX/generateCode.py.
Function casadi::Function::reverse ( int  nadj) const
inherited

Returns a function with n_in + n_out + n_out inputs and n_in outputs. The first n_in inputs correspond to nondifferentiated inputs. The next n_out inputs correspond to nondifferentiated outputs. and the last n_out inputs correspond to adjoint seeds, stacked horizontally The n_in outputs correspond to adjoint sensitivities, stacked horizontally. * (n_in = n_in(), n_out = n_out())

(n_in = n_in(), n_out = n_out())

The functions returned are cached, meaning that if called multiple timed with the same value, then multiple references to the same function will be returned.

Function casadi::Function::rootfinder_fun ( ) const
inlineinherited

[DEPRECATED] Use oracle() instead

Definition at line 909 of file function.hpp.

void casadi::Function::set_jac_sparsity ( const Sparsity sp,
int  iind,
int  oind,
bool  compact = false 
)
inherited

[DEPRECATED] Generate the sparsity of a Jacobian block

void casadi::Function::set_jac_sparsity ( const Sparsity sp,
const std::string &  iind,
int  oind,
bool  compact = false 
)
inlineinherited

[DEPRECATED] Generate the sparsity of a Jacobian block

Definition at line 696 of file function.hpp.

void casadi::Function::set_jac_sparsity ( const Sparsity sp,
int  iind,
const std::string &  oind,
bool  compact = false 
)
inlineinherited

[DEPRECATED] Generate the sparsity of a Jacobian block

Definition at line 700 of file function.hpp.

void casadi::Function::set_jac_sparsity ( const Sparsity sp,
const std::string &  iind,
const std::string &  oind,
bool  compact = false 
)
inlineinherited

[DEPRECATED] Generate the sparsity of a Jacobian block

Definition at line 704 of file function.hpp.

void casadi::Function::setFullJacobian ( const Function jac)
inherited

[DEPRECATED] Set the Jacobian of all the input nonzeros with respect to all output nonzeros NOTE: Does not take ownership, only weak references to the Jacobian are kept internally

void casadi::Function::setJacobian ( const Function jac,
int  iind = 0,
int  oind = 0,
bool  compact = false 
)
inherited

[DEPRECATED] Set the Jacobian function of output oind with respect to input iind NOTE: Does not take ownership, only weak references to the Jacobians are kept internally

int casadi::Function::size1_in ( int  ind) const
inherited
int casadi::Function::size1_in ( const std::string &  iname) const
inlineinherited

Definition at line 189 of file function.hpp.

int casadi::Function::size1_out ( int  ind) const
inherited
int casadi::Function::size1_out ( const std::string &  oname) const
inlineinherited

Definition at line 199 of file function.hpp.

int casadi::Function::size2_in ( int  ind) const
inherited
int casadi::Function::size2_in ( const std::string &  iname) const
inlineinherited

Definition at line 191 of file function.hpp.

int casadi::Function::size2_out ( int  ind) const
inherited
int casadi::Function::size2_out ( const std::string &  oname) const
inlineinherited

Definition at line 201 of file function.hpp.

std::pair<int, int> casadi::Function::size_in ( int  ind) const
inherited
std::pair<int, int> casadi::Function::size_in ( const std::string &  iname) const
inlineinherited

Definition at line 193 of file function.hpp.

std::pair<int, int> casadi::Function::size_out ( int  ind) const
inherited
std::pair<int, int> casadi::Function::size_out ( const std::string &  oname) const
inlineinherited

Definition at line 203 of file function.hpp.

Function casadi::Function::slice ( const std::string &  name,
const std::vector< int > &  order_in,
const std::vector< int > &  order_out,
const Dict opts = Dict() 
) const
inherited
const Sparsity& casadi::Function::sparsity_in ( int  ind) const
inherited
const Sparsity& casadi::Function::sparsity_in ( const std::string &  iname) const
inherited
const Sparsity casadi::Function::sparsity_jac ( int  iind,
int  oind,
bool  compact = false,
bool  symmetric = false 
) const
inherited

Get, if necessary generate, the sparsity of a Jacobian block

const Sparsity casadi::Function::sparsity_jac ( const std::string &  iind,
int  oind = 0,
bool  compact = false,
bool  symmetric = false 
) const
inlineinherited

Get, if necessary generate, the sparsity of a Jacobian block

Definition at line 670 of file function.hpp.

const Sparsity casadi::Function::sparsity_jac ( int  iind,
const std::string &  oind,
bool  compact = false,
bool  symmetric = false 
) const
inlineinherited

Get, if necessary generate, the sparsity of a Jacobian block

Definition at line 674 of file function.hpp.

const Sparsity casadi::Function::sparsity_jac ( const std::string &  iind,
const std::string &  oind,
bool  compact = false,
bool  symmetric = false 
) const
inlineinherited

Get, if necessary generate, the sparsity of a Jacobian block

Definition at line 678 of file function.hpp.

const Sparsity casadi::Function::sparsity_jac ( int  iind = 0) const
inlineinherited

Definition at line 689 of file function.hpp.

const Sparsity& casadi::Function::sparsity_out ( int  ind) const
inherited
const Sparsity& casadi::Function::sparsity_out ( const std::string &  iname) const
inherited
Dict casadi::Function::stats ( int  mem = 0) const
inherited
const SX casadi::Function::sx_in ( int  iind) const
inherited
const SX casadi::Function::sx_in ( const std::string &  iname) const
inlineinherited

Definition at line 749 of file function.hpp.

const std::vector<SX> casadi::Function::sx_in ( ) const
inherited
const SX casadi::Function::sx_out ( int  oind) const
inherited
const SX casadi::Function::sx_out ( const std::string &  oname) const
inlineinherited

Definition at line 765 of file function.hpp.

const std::vector<SX> casadi::Function::sx_out ( ) const
inherited
Function casadi::Function::tangent ( int  iind = 0,
int  oind = 0 
)
inherited
Function casadi::Function::tangent ( const std::string &  iind,
int  oind = 0 
)
inlineinherited

Definition at line 393 of file function.hpp.

Function casadi::Function::tangent ( int  iind,
const std::string &  oind 
)
inlineinherited

Definition at line 395 of file function.hpp.

Function casadi::Function::tangent ( const std::string &  iind,
const std::string &  oind 
)
inlineinherited

Definition at line 397 of file function.hpp.

std::string casadi::Function::type_name ( ) const
inherited
std::vector<bool> casadi::Function::which_depends ( const std::string &  s_in,
const std::vector< std::string > &  s_out,
int  order = 1,
bool  tr = false 
) const
inherited
Parameters
[in]orderOnly 1 (linear) and 2 (nonlinear) allowed
[in]trFlip the relationship. Return which expressions contain the variables
Function casadi::Function::wrap ( ) const
inherited

The documentation for this class was generated from the following file:
Release pointers: extensive python examples, Users Guide (pdf | html )
Official releases: 3.2.0-rc1 3.1.1 3.0.0 2.4.2 2.3.0 2.2.0 2.1.1 2.0.0 1.9.0 1.8.0 1.7.1 1.7.0 1.6.1 1.6.0 1.5.0 1.4.0 1.3.0 bleeding edge