CasADi Python API

1. Expression tools

acos(*args)

Arc cosine: x -> acos(x)

acos(float x) -> float
acos(DM x) -> DM
acos(SX x) -> SX
acos(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p8

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L374

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L374-L376

acosh(*args)

Inverse hyperbolic cosine: x -> acosh(x)

acosh(float x) -> float
acosh(DM x) -> DM
acosh(SX x) -> SX
acosh(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pe

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L446

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L446-L448

adj(*args)

Matrix adjoint.

adj(DM A) -> DM
adj(SX A) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_18p

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L504

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L504-L506

asin(*args)

Arc sine: x -> asin(x)

asin(float x) -> float
asin(DM x) -> DM
asin(SX x) -> SX
asin(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L362

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L362-L364

asinh(*args)

Inverse hyperbolic sin: x -> asinh(x)

asinh(float x) -> float
asinh(DM x) -> DM
asinh(SX x) -> SX
asinh(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L434

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L434-L436

atan(*args)

Arc tangent: x -> atan(x)

atan(float x) -> float
atan(DM x) -> DM
atan(SX x) -> SX
atan(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L350

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L350-L352

atan2(*args)

Two argument arc tangent: (y,x) -> atan2(y,x)

atan2(float x, float y) -> float
atan2(DM x, DM y) -> DM
atan2(SX x, SX y) -> SX
atan2(MX x, MX y) -> MX

theta = atan2(y,x) corresponds to x = r cos(theta), y = r sin(theta)

Extra doc: https://github.com/casadi/casadi/wiki/L_pr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L648

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L648-L650

atanh(*args)

Inverse hyperbolic tangent: x -> atanh(x)

atanh(float x) -> float
atanh(DM x) -> DM
atanh(SX x) -> SX
atanh(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L422

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L422-L424

bilin(*args)

Calculate bilinear/quadratic form x^T A y.

bilin(DM A, DM x) -> DM
bilin(SX A, SX x) -> SX
bilin(MX A, MX x) -> MX
bilin(DM A, DM x, DM y) -> DM
bilin(SX A, SX x, SX y) -> SX
bilin(MX A, MX x, MX y) -> MX

1. Parameters:

y: can be omitted, in which case x^T A x is calculated

Extra doc: https://github.com/casadi/casadi/wiki/L_1bo

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L409

blockcat(*args)

Construct a matrix from 4 blocks.

blockcat([[DM]] v) -> DM
blockcat([[SX]] v) -> SX
blockcat([[MX]] v) -> MX
blockcat(Sparsity A, Sparsity B, Sparsity C, Sparsity D) -> Sparsity
blockcat(DM A, DM B, DM C, DM D) -> DM
blockcat(SX A, SX B, SX C, SX D) -> SX
blockcat(MX A, MX B, MX C, MX D) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_3m

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L234

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L234-L236

bspline(*args)
bspline(MX x, DM coeffs, [[float]] knots, [int] degree, int m, dict opts) -> MX
bspline(MX x, MX coeffs, [[float]] knots, [int] degree, int m, dict opts) -> MX
ceil(*args)

Round up to nearest integer: x -> ceil(x)

ceil(float x) -> float
ceil(DM x) -> DM
ceil(SX x) -> SX
ceil(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pl

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L530

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L530-L532

chol(*args)

Obtain a Cholesky factorisation of a matrix.

chol(DM A) -> DM
chol(SX A) -> SX

Performs and LDL transformation [L,D] = ldl(A) and returns diag(sqrt(D))*L’

Extra doc: https://github.com/casadi/casadi/wiki/L_18v

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L562

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L562-L564

cofactor(*args)

Get the (i,j) cofactor matrix.

cofactor(DM x, int i, int j) -> DM
cofactor(SX x, int i, int j) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_18r

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L518

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L518-L520

collocation_coeff(*args)

[INTERNAL]

collocation_coeff([float] tau) -> (DM OUTPUT, DM OUTPUT, DM OUTPUT)

Obtain collocation interpolating matrices.

A collocation method poses a polynomial Pi that interpolates exactly

through an initial state (0,X_0) and helper states at collocation points (tau_j,Xc_j) with j=1..degree.

This function computes the linear mapping between dPi/dt and coefficients Z=[X_0 Xc].

1. Parameters:

tau: location of collocation points (length: degree), as obtained from

collocation_points

C: interpolating coefficients to obtain derivatives. Size: (degree+1)-by-

degree

You may find the slopes of Pi at the collocation points as

dPi/dt @ Xc = (1/h) Z*C,

with h the length of the integration interval.

1. Parameters:

D: interpolating coefficients to obtain end state. Size: (degree+1)-by-1

You may find the end point of Pi as

Pi @X_f = Z*D

1. Parameters:

B: quadrature coefficients Size: degree-by-1

Given quadrature righ-hand-sides ‘quad’ evaluated at the collocation

points, you may find the integrated quadratures as

q = quad*B*h

Extra doc: https://github.com/casadi/casadi/wiki/L_1sq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L233

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L233-L287

collocation_points(*args)

[INTERNAL]

collocation_points(int order, str scheme) -> [float]

Obtain collocation points of specific order and scheme.

1. Parameters:

order: Which order (1 to 9 supported)

scheme: ‘radau’ or ‘legendre’

Extra doc: https://github.com/casadi/casadi/wiki/L_1so

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L120

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L120-L122

conditional(*args)

Create a switch.

conditional(DM ind, [DM] x, DM x_default, bool short_circuit) -> DM
conditional(SX ind, [SX] x, SX x_default, bool short_circuit) -> SX
conditional(MX ind, [MX] x, MX x_default, bool short_circuit) -> MX

If the condition

1. Parameters:

ind: evaluates to the integer k, where 0<=k<f.size(), then x[k] will be

returned, otherwise

x_default: will be returned.

Extra doc: https://github.com/casadi/casadi/wiki/L_1cj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L647

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L647-L650

constpow(*args)

Elementwise power with const power

constpow(float x, float y) -> float
constpow(DM x, DM y) -> DM
constpow(SX x, SX y) -> SX
constpow(MX x, MX y) -> MX

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L720

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L720-L722

convexify(*args)
convexify(MX H, dict opts) -> MX
copysign(*args)

Copy sign

copysign(float x, float y) -> float
copysign(DM x, DM y) -> DM
copysign(SX x, SX y) -> SX
copysign(MX x, MX y) -> MX

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L710

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L710-L712

cos(*args)

Cosine: x -> cos(x)

cos(float x) -> float
cos(DM x) -> DM
cos(SX x) -> SX
cos(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L326

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L326-L328

cosh(*args)

Hyperbolic cosine: x -> cosh(x)

cosh(float x) -> float
cosh(DM x) -> DM
cosh(SX x) -> SX
cosh(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L410

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L410-L412

cross(*args)

Matlab’s cross command.

cross(DM a, DM b, int dim) -> DM
cross(SX a, SX b, int dim) -> SX
cross(MX a, MX b, int dim) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bu

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L467

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L467-L469

cse(*args)

Common subexpression elimination.

cse(DM e) -> DM
cse([DM] e) -> [DM]
cse([SX] e) -> [SX]
cse(SX e) -> SX
cse(MX e) -> MX
cse([MX] e) -> [MX]

Extra doc: https://github.com/casadi/casadi/wiki/L_1cp

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L702

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L702-L704

cumsum(*args)

cumulative sum

cumsum(DM A, int axis) -> DM
cumsum(SX A, int axis) -> SX
cumsum(MX A, int axis) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1lm

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L916

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L916-L924

dae_init_gen(*args)

[INTERNAL]

dae_init_gen(dict:SX dae, dict:SX dae_red, str init_solver, dict:DM init_strength, dict init_solver_options) -> Function
dae_init_gen(dict:MX dae, dict:MX dae_red, str init_solver, dict:DM init_strength, dict init_solver_options) -> Function

Obtain a generator Function for producing consistent initial guesses of a reduced DAE.

1. Parameters:

dae: Original (unreduced) DAE structure

dae_red: Reduced DAE (see dae_reduce_index)

init_solver: NLP solver plugin name for nlpsol used to construct an initial

guess

init_strength: Influence the nature of the NLP Structure with keys x_impl, dx_impl, z

corresponding to inputs of init_gen Each key maps to a DM that

should

match the variable size corresponding to that key. For each variable

the meaning of the corresponding DM value is as follows: When >=0,

indicates that the provided initial guess is used in a quadratic penalty (value used as weight) When -1, indicates that the provided initial guess must be observed (simple bound on variable)

init_solver_options: NLP solver options to be passed to nlpsol

init_gen A function to generate a consistent initial guess that can be

used to pass to an integrator constructed from a semi explict reduced DAE

Inputs: x_impl, dx_impl, z: initial guesses in the original DAE space

p: parameters

t: time Outputs:

x0, z0: (semi explicit) integrator states and algebraic variables;

typically used as input for integrators

See:

dae_reduce_index

Extra doc: https://github.com/casadi/casadi/wiki/L_1sv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1215

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1215-L1218


dae_init_gen(dict:SX dae, dict:SX dae_red, str init_solver, dict:DM init_strength, dict init_solver_options)

[INTERNAL] Obtain a generator Function for producing consistent initial guesses of a reduced DAE.

1. Parameters:

dae: Original (unreduced) DAE structure

dae_red: Reduced DAE (see dae_reduce_index)

init_solver: NLP solver plugin name for nlpsol used to construct an initial

guess

init_strength: Influence the nature of the NLP Structure with keys x_impl, dx_impl, z

corresponding to inputs of init_gen Each key maps to a DM that

should

match the variable size corresponding to that key. For each variable

the meaning of the corresponding DM value is as follows: When >=0,

indicates that the provided initial guess is used in a quadratic penalty (value used as weight) When -1, indicates that the provided initial guess must be observed (simple bound on variable)

init_solver_options: NLP solver options to be passed to nlpsol

init_gen A function to generate a consistent initial guess that can be

used to pass to an integrator constructed from a semi explict reduced DAE

Inputs: x_impl, dx_impl, z: initial guesses in the original DAE space

p: parameters

t: time Outputs:

x0, z0: (semi explicit) integrator states and algebraic variables;

typically used as input for integrators

See:

dae_reduce_index

Extra doc: https://github.com/casadi/casadi/wiki/L_1sv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1215

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1215-L1218



dae_init_gen(dict:MX dae, dict:MX dae_red, str init_solver, dict:DM init_strength, dict init_solver_options)

[INTERNAL] Obtain a generator Function for producing consistent initial guesses of a reduced DAE.

1. Parameters:

dae: Original (unreduced) DAE structure

dae_red: Reduced DAE (see dae_reduce_index)

init_solver: NLP solver plugin name for nlpsol used to construct an initial

guess

init_strength: Influence the nature of the NLP Structure with keys x_impl, dx_impl, z

corresponding to inputs of init_gen Each key maps to a DM that

should

match the variable size corresponding to that key. For each variable

the meaning of the corresponding DM value is as follows: When >=0,

indicates that the provided initial guess is used in a quadratic penalty (value used as weight) When -1, indicates that the provided initial guess must be observed (simple bound on variable)

init_solver_options: NLP solver options to be passed to nlpsol

init_gen A function to generate a consistent initial guess that can be

used to pass to an integrator constructed from a semi explict reduced DAE

Inputs: x_impl, dx_impl, z: initial guesses in the original DAE space

p: parameters

t: time Outputs:

x0, z0: (semi explicit) integrator states and algebraic variables;

typically used as input for integrators

See:

dae_reduce_index

Extra doc: https://github.com/casadi/casadi/wiki/L_1sv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1210

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1210-L1213


dae_map_semi_expl(*args)

[INTERNAL]

dae_map_semi_expl(dict:SX dae, dict:SX dae_red) -> (dict:SX , Function OUTPUT, Function OUTPUT)
dae_map_semi_expl(dict:MX dae, dict:MX dae_red) -> (dict:MX , Function OUTPUT, Function OUTPUT)

Turn a reduced DAE into a semi explicit form suitable for CasADi

integrator.

1. Parameters:

dae: Original (unreduced) DAE structure

dae_red: Reduced DAE (see dae_reduce_index)

state_to_orig: A mapping of integrator (semi explicit) states to states of the original DAE

phi: A function to compute the invariants of the reduced DAE Inputs: x and z: (semi explicit) integrator states; typically integrator outputs xf and zf

p: parameters

t: time

Semi explicit DAE dictionary, suitable to pass to a CasADi integrator

See:

dae_reduce_index

Extra doc: https://github.com/casadi/casadi/wiki/L_1su

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1205

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1205-L1208


dae_map_semi_expl(dict:SX dae, dict:SX dae_red)

[INTERNAL] Turn a reduced DAE into a semi explicit form suitable for CasADi

integrator.

1. Parameters:

dae: Original (unreduced) DAE structure

dae_red: Reduced DAE (see dae_reduce_index)

state_to_orig: A mapping of integrator (semi explicit) states to states of the original DAE

phi: A function to compute the invariants of the reduced DAE Inputs: x and z: (semi explicit) integrator states; typically integrator outputs xf and zf

p: parameters

t: time

Semi explicit DAE dictionary, suitable to pass to a CasADi integrator

See:

dae_reduce_index

Extra doc: https://github.com/casadi/casadi/wiki/L_1su

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1205

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1205-L1208



dae_map_semi_expl(dict:MX dae, dict:MX dae_red)

[INTERNAL] Turn a reduced DAE into a semi explicit form suitable for CasADi

integrator.

1. Parameters:

dae: Original (unreduced) DAE structure

dae_red: Reduced DAE (see dae_reduce_index)

state_to_orig: A mapping of integrator (semi explicit) states to states of the original DAE

phi: A function to compute the invariants of the reduced DAE Inputs: x and z: (semi explicit) integrator states; typically integrator outputs xf and zf

p: parameters

t: time

Semi explicit DAE dictionary, suitable to pass to a CasADi integrator

See:

dae_reduce_index

Extra doc: https://github.com/casadi/casadi/wiki/L_1su

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1200

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1200-L1203


dae_reduce_index(*args)

[INTERNAL]

dae_reduce_index(dict:SX dae, dict opts) -> (dict:SX , dict OUTPUT)
dae_reduce_index(dict:MX dae, dict opts) -> (dict:MX , dict OUTPUT)

Reduce index.

Index reduction leads to a new set of variables and equations.

In the process, a set of constraints (algebraic equations or derivatives) a.k.a invariants is constructed that are invariant to the

problem: whenever an initial point satisfies these constraints, the

boundary-value-problem outcome will keep satisfying those constraints automatically, even though they are not part of the reduced DAE.

For any practical numerical integration method, there will be numerical drift away from satisfaction of those constraints. In other words, you will

see the value of invariants slowly moving away from

original zero.

A classic mitigation technique is Baumgarte stabilization: you add these invariants to the reduced DAE as a correction term that acts in a way to make small (numerical) perturbations to the invariants decay to the origin as a dampened linear system.

in which a certain set of constraints (algebraic equations or derivatives) has been dropped in favour of

1. Parameters:

dae: Expression dictionary describing the DAE

Each value must be a dense column vector.

keys: x_impl: symbol for implicit differential states

dx_impl: symbol for implicit differential state derivatives

z: symbol for algebraic variables

alg: expression for algebraic equations

t: symbol for time

p: symbol for parameters

1. Parameters:

opts: Option dictionary

‘baumgarte_pole’: double Poles (inverse time constants) of the Baumgarte invariant correction term. Must be <0 to dampen out perturbations 0 (default) amounts to no correction. Corresponds to -gamma of equation (1.5)

in Ascher, Uri M., Hongsheng Chin, and

Sebastian Reich. “Stabilization of

DAEs and invariant manifolds.”

Numerische Mathematik 67.2 (1994): 131-149.

1. Parameters:

stats: Statistics

Expression dictionary describing the reduced DAE

In addition the fields allowed in the input DAE, the following keys occur:

x: symbol for explicit differential states

ode: expression for right-hand-side of explicit differential states

I: expression for invariants

Extra doc: https://github.com/casadi/casadi/wiki/L_23h

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1060

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1060-L1062


dae_reduce_index(dict:SX dae, dict opts)

[INTERNAL] Reduce index.

Index reduction leads to a new set of variables and equations.

In the process, a set of constraints (algebraic equations or derivatives) a.k.a invariants is constructed that are invariant to the

problem: whenever an initial point satisfies these constraints, the

boundary-value-problem outcome will keep satisfying those constraints automatically, even though they are not part of the reduced DAE.

For any practical numerical integration method, there will be numerical drift away from satisfaction of those constraints. In other words, you will

see the value of invariants slowly moving away from

original zero.

A classic mitigation technique is Baumgarte stabilization: you add these invariants to the reduced DAE as a correction term that acts in a way to make small (numerical) perturbations to the invariants decay to the origin as a dampened linear system.

in which a certain set of constraints (algebraic equations or derivatives) has been dropped in favour of

1. Parameters:

dae: Expression dictionary describing the DAE

Each value must be a dense column vector.

keys: x_impl: symbol for implicit differential states

dx_impl: symbol for implicit differential state derivatives

z: symbol for algebraic variables

alg: expression for algebraic equations

t: symbol for time

p: symbol for parameters

1. Parameters:

opts: Option dictionary

‘baumgarte_pole’: double Poles (inverse time constants) of the Baumgarte invariant correction term. Must be <0 to dampen out perturbations 0 (default) amounts to no correction. Corresponds to -gamma of equation (1.5)

in Ascher, Uri M., Hongsheng Chin, and

Sebastian Reich. “Stabilization of

DAEs and invariant manifolds.”

Numerische Mathematik 67.2 (1994): 131-149.

1. Parameters:

stats: Statistics

Expression dictionary describing the reduced DAE

In addition the fields allowed in the input DAE, the following keys occur:

x: symbol for explicit differential states

ode: expression for right-hand-side of explicit differential states

I: expression for invariants

Extra doc: https://github.com/casadi/casadi/wiki/L_23h

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1060

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1060-L1062



dae_reduce_index(dict:MX dae, dict opts)

[INTERNAL] Reduce index.

Index reduction leads to a new set of variables and equations.

In the process, a set of constraints (algebraic equations or derivatives) a.k.a invariants is constructed that are invariant to the

problem: whenever an initial point satisfies these constraints, the

boundary-value-problem outcome will keep satisfying those constraints automatically, even though they are not part of the reduced DAE.

For any practical numerical integration method, there will be numerical drift away from satisfaction of those constraints. In other words, you will

see the value of invariants slowly moving away from

original zero.

A classic mitigation technique is Baumgarte stabilization: you add these invariants to the reduced DAE as a correction term that acts in a way to make small (numerical) perturbations to the invariants decay to the origin as a dampened linear system.

in which a certain set of constraints (algebraic equations or derivatives) has been dropped in favour of

1. Parameters:

dae: Expression dictionary describing the DAE

Each value must be a dense column vector.

keys: x_impl: symbol for implicit differential states

dx_impl: symbol for implicit differential state derivatives

z: symbol for algebraic variables

alg: expression for algebraic equations

t: symbol for time

p: symbol for parameters

1. Parameters:

opts: Option dictionary

‘baumgarte_pole’: double Poles (inverse time constants) of the Baumgarte invariant correction term. Must be <0 to dampen out perturbations 0 (default) amounts to no correction. Corresponds to -gamma of equation (1.5)

in Ascher, Uri M., Hongsheng Chin, and

Sebastian Reich. “Stabilization of

DAEs and invariant manifolds.”

Numerische Mathematik 67.2 (1994): 131-149.

1. Parameters:

stats: Statistics

Expression dictionary describing the reduced DAE

In addition the fields allowed in the input DAE, the following keys occur:

x: symbol for explicit differential states

ode: expression for right-hand-side of explicit differential states

I: expression for invariants

Extra doc: https://github.com/casadi/casadi/wiki/L_23h

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.hpp#L1056

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integration_tools.cpp#L1056-L1058


densify(*args)

Make the matrix dense and assign nonzeros to a value.

densify(DM x) -> DM
densify(SX x) -> SX
densify(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1cg

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L617

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L617-L619

depends_on(*args)

Check if expression depends on the argument.

depends_on(DM f, DM arg) -> bool
depends_on(SX f, SX arg) -> bool
depends_on(MX f, MX arg) -> bool

The argument must be symbolic

Extra doc: https://github.com/casadi/casadi/wiki/L_1ck

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L657

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L657-L659

det(*args)

Matrix determinant (experimental)

det(DM A) -> DM
det(SX A) -> SX
det(MX A) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bx

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L488

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L488-L488

detect_simple_bounds(*args)

[INTERNAL]

detect_simple_bounds(SX xX, SX p, SX g, SX lbg, SX ubg) -> ([int] OUTPUT, SX OUTPUT, SX OUTPUT, Function OUTPUT, Function OUTPUT)
detect_simple_bounds(MX xX, MX p, MX g, MX lbg, MX ubg) -> ([int] OUTPUT, MX OUTPUT, MX OUTPUT, Function OUTPUT, Function OUTPUT)

detect_simple_bounds(SX xX, SX p, SX g, SX lbg, SX ubg)

[INTERNAL] Detect simple bounds from general constraints.

Given parametric constraints:

*   subject to lbg(p) <= g(x,p) <= ubg(p)
*

Returns an equivalent set

*   subject to  lbg(p)(gi) <= g(x,p)(gi) <= ubg(p)(gi)
*               lbx(p) <= x                 <= ubx(p)
*

1. Parameters:

lam_forward: (lam_g,p)->(lam_sg,lam_x)

lam_backward: (lam_sg,lam_x,p)->(lam_g)

Extra doc: https://github.com/casadi/casadi/wiki/L_1sw

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/nlp_tools.hpp#L217

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/nlp_tools.cpp#L217-L225



detect_simple_bounds(MX xX, MX p, MX g, MX lbg, MX ubg)

[INTERNAL]


diag(*args)

Get the diagonal of a matrix or construct a diagonal.

diag(DM A) -> DM
diag(SX A) -> SX
diag(MX A) -> MX

When the input is square, the diagonal elements are returned. If the input is vector-like, a diagonal matrix is constructed with it.

Extra doc: https://github.com/casadi/casadi/wiki/L_1cd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L596

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L596-L598

diagsplit(*args)

split diagonally, retaining fixed-sized matrices

diagsplit(Sparsity x, int incr) -> [Sparsity]
diagsplit(DM x, int incr) -> [DM]
diagsplit(SX x, int incr) -> [SX]
diagsplit(MX x, int incr) -> [MX]
diagsplit(Sparsity x, [int] output_offset) -> [Sparsity]
diagsplit(DM x, [int] output_offset) -> [DM]
diagsplit(SX x, [int] output_offset) -> [SX]
diagsplit(MX x, [int] output_offset) -> [MX]
diagsplit(Sparsity x, int incr1, int incr2) -> [Sparsity]
diagsplit(Sparsity x, [int] output_offset1, [int] output_offset2) -> [Sparsity]
diagsplit(DM x, int incr1, int incr2) -> [DM]
diagsplit(DM x, [int] output_offset1, [int] output_offset2) -> [DM]
diagsplit(SX x, int incr1, int incr2) -> [SX]
diagsplit(SX x, [int] output_offset1, [int] output_offset2) -> [SX]
diagsplit(MX x, int incr1, int incr2) -> [MX]
diagsplit(MX x, [int] output_offset1, [int] output_offset2) -> [MX]

1. Parameters:

incr1: Row dimension of each matrix

incr2: Column dimension of each matrix

diagsplit(diagsplit(x, …)) = x

Extra doc: https://github.com/casadi/casadi/wiki/L_3t

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L324

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L324-L326

diff(*args)

diff

diff(DM A, int n, int axis) -> DM
diff(SX A, int n, int axis) -> SX
diff(MX A, int n, int axis) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1ln

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L938

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L938-L945

difference(*args)

bried Return all elements of a that do not occur in b, preserving

difference([MX] a, [MX] b) -> [MX]

order

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L854

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L854-L856

dot(*args)

Inner product of two matrices.

dot(DM x, DM y) -> DM
dot(SX x, SX y) -> SX
dot(MX x, MX y) -> MX

with x and y matrices of the same dimension

Extra doc: https://github.com/casadi/casadi/wiki/L_1ca

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L565

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L565-L567

eig_symbolic(*args)

Attempts to find the eigenvalues of a symbolic matrix.

eig_symbolic(DM m) -> DM
eig_symbolic(SX m) -> SX

This will only work for up to 3x3 matrices

Extra doc: https://github.com/casadi/casadi/wiki/L_199

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L833

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L833-L835

einstein(*args)

Computes an einstein dense tensor contraction.

einstein(DM A, DM B, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> DM
einstein(SX A, SX B, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> SX
einstein(MX A, MX B, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> MX
einstein(DM A, DM B, DM C, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> DM
einstein(SX A, SX B, SX C, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> SX
einstein(MX A, MX B, MX C, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> MX

Computes the product: C_c = A_a + B_b where a b c are index/einstein

notation in an encoded form

For example, an matrix-matrix product may be written as: C_ij = A_ik B_kj

The encoded form uses strictly negative numbers to indicate labels. For the

above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}

Extra doc: https://github.com/casadi/casadi/wiki/L_r5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L533

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L646-L652

eq(*args)

Logical equal to: (x,y) -> x == y.

eq(float x, float y) -> float
eq(DM x, DM y) -> DM
eq(SX x, SX y) -> SX
eq(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_ov

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L191

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L191-L193

erf(*args)

Error function: x -> erf(x)

erf(float x) -> float
erf(DM x) -> DM
erf(SX x) -> SX
erf(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pm

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L542

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L542-L544

erfinv(*args)

Inverse error function: x -> erfinv(x)

erfinv(float x) -> float
erfinv(DM x) -> DM
erfinv(SX x) -> SX
erfinv(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pn

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L554

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L554-L556

evalf(*args)

Evaluates the expression numerically.

evalf(DM x) -> DM
evalf(SX x) -> DM
evalf(MX x) -> DM

An error is raised when the expression contains symbols

Extra doc: https://github.com/casadi/casadi/wiki/L_rf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L816

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L816-L818

exp(*args)

Elementwise exponential: x -> exp(x)

exp(float x) -> float
exp(DM x) -> DM
exp(SX x) -> SX
exp(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L458

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L458-L460

expand(*args)

Expand the expression as a weighted sum (with constant weights)

expand(DM ex) -> (DM OUTPUT1, DM OUTPUT2)
expand(SX ex) -> (SX OUTPUT1, SX OUTPUT2)

Extra doc: https://github.com/casadi/casadi/wiki/L_192

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L620

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L620-L623

expm(*args)

Calculate Matrix exponential.

expm(DM A) -> DM
expm(SX A) -> SX
expm(MX A) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_23w

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L790

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L790-L792

expm1(*args)

Precision variant for elementwise exponential: x -> exp(x)-1.

expm1(float x) -> float
expm1(DM x) -> DM
expm1(SX x) -> SX
expm1(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L506

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L506-L508

expm_const(*args)

Calculate Matrix exponential.

expm_const(DM A, DM t) -> DM
expm_const(SX A, SX t) -> SX
expm_const(MX A, MX t) -> MX

Computes expm(A*t) with A constant

1. Parameters:

A[in]: Square matrix

t[in]: Scalar

Extra doc: https://github.com/casadi/casadi/wiki/L_23v

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L782

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L782-L784

extract(*args)

Introduce intermediate variables for selected nodes in a graph.

extract([DM] ex, dict opts) -> ([DM] OUTPUT1, [DM] OUTPUT2, [DM] OUTPUT3)
extract([SX] ex, dict opts) -> ([SX] OUTPUT1, [SX] OUTPUT2, [SX] OUTPUT3)
extract([MX] ex, dict opts) -> ([MX] OUTPUT1, [MX] OUTPUT2, [MX] OUTPUT3)

Extra doc: https://github.com/casadi/casadi/wiki/L_1d5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L959

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L959-L964

find(*args)

find nonzeros

find(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1le

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L611

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L611-L617

floor(*args)

Round down to nearest integer: x -> floor(x)

floor(float x) -> float
floor(DM x) -> DM
floor(SX x) -> SX
floor(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L518

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L518-L520

fmax(*args)

Largest of two values: (x,y) -> max(x,y)

fmax(float x, float y) -> float
fmax(DM x, DM y) -> DM
fmax(SX x, SX y) -> SX
fmax(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pu

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L684

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L684-L686

fmin(*args)

Smallest of two values: (x,y) -> min(x,y)

fmin(float x, float y) -> float
fmin(DM x, DM y) -> DM
fmin(SX x, SX y) -> SX
fmin(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L672

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L672-L674

fmod(*args)

Remainder after division: (x,y) -> fmod(x,y)

fmod(float x, float y) -> float
fmod(DM x, DM y) -> DM
fmod(SX x, SX y) -> SX
fmod(MX x, MX y) -> MX

This Function follows the convention of https://en.cppreference.com/w/c/numeric/math/fmod

Notably: fmod(5,3) -> 2

fmod(5,-3) -> 2

fmod(-5,3) -> -2

fmod(-5,-3) -> -2

This is equivalent to Python’s numpy.fmod and Matlab’s rem.

seealso remainder

Extra doc: https://github.com/casadi/casadi/wiki/L_pq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L613

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L613-L615

gauss_quadrature(*args)

Integrate f from a to b using Gaussian quadrature with n points.

gauss_quadrature(DM f, DM x, DM a, DM b, int order) -> DM
gauss_quadrature(SX f, SX x, SX a, SX b, int order) -> SX
gauss_quadrature(DM f, DM x, DM a, DM b, int order, DM w) -> DM
gauss_quadrature(SX f, SX x, SX a, SX b, int order, SX w) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_196

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L732

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L732-L736

ge(*args)

Logical greater or equal to: (x,y) -> x >= y.

ge(float x, float y) -> float
ge(DM x, DM y) -> DM
ge(SX x, SX y) -> SX
ge(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_ou

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L176

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L176-L178

gradient(*args)

Calculate the gradient of an expression.

gradient(DM ex, DM arg) -> DM
gradient(SX ex, SX arg) -> SX
gradient(MX ex, MX arg) -> MX

1. Parameters:

ex[in]: Scalar expression to take the gradient of

arg[in]: Vector expression of symbols

opts[in]: Options

Dense column vector

Extra doc: https://github.com/casadi/casadi/wiki/L_23x

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L812

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L812-L814

graph_substitute(*args)

Substitute multiple expressions in graph.

graph_substitute(MX ex, [MX] v, [MX] vdef) -> MX
graph_substitute([MX] ex, [MX] v, [MX] vdef) -> [MX]

Substitute variable var with expression expr in multiple expressions,

preserving nodes

Extra doc: https://github.com/casadi/casadi/wiki/L_ra

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L734

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L734-L738

gt(*args)

Logical greater than: (x,y) -> x > y.

gt(float x, float y) -> float
gt(DM x, DM y) -> DM
gt(SX x, SX y) -> SX
gt(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_ot

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L161

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L161-L163

heaviside(*args)

Heaviside function.

heaviside(DM x) -> DM
heaviside(SX x) -> SX

[ begin {cases} H(x) = 0 & x<0 \ H(x) = 1/2 & x=0 \ H(x) = 1 & x>0 \ end {cases} ]

Extra doc: https://github.com/casadi/casadi/wiki/L_195

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L668

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L668-L670

hessian(*args)

Hessian and (optionally) gradient.

hessian(DM ex, DM arg, dict opts) -> (DM , DM OUTPUT1)
hessian(SX ex, SX arg, dict opts) -> (SX , SX OUTPUT1)
hessian(MX ex, MX arg, dict opts) -> (MX , MX OUTPUT1)

Extra doc: https://github.com/casadi/casadi/wiki/L_23z

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L865

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L865-L868

horzsplit(*args)

split horizontally, retaining fixed-sized groups of columns

horzsplit(Sparsity v, int incr) -> [Sparsity]
horzsplit(DM v, int incr) -> [DM]
horzsplit(SX v, int incr) -> [SX]
horzsplit(MX v, int incr) -> [MX]
horzsplit(Sparsity v, [int] offset) -> [Sparsity]
horzsplit(DM v, [int] offset) -> [DM]
horzsplit(SX v, [int] offset) -> [SX]
horzsplit(MX v, [int] offset) -> [MX]

1. Parameters:

incr: Size (width) of each group of columns

horzcat(horzsplit(x, …)) = x

seealso horzsplit_n

Extra doc: https://github.com/casadi/casadi/wiki/L_3h

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L134

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L134-L136

horzsplit_n(*args)

split horizontally, retaining fixed-sized groups of columns

horzsplit_n(Sparsity v, int n) -> [Sparsity]
horzsplit_n(DM v, int n) -> [DM]
horzsplit_n(SX v, int n) -> [SX]
horzsplit_n(MX v, int n) -> [MX]

1. Parameters:

n: Number of groups of columns

Will error when the number of columns is not a multiple of n

horzcat(horzsplit(x, …)) = x

seealso horzsplit

Extra doc: https://github.com/casadi/casadi/wiki/L_277

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L149

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L149-L151

hypot(*args)

Precision variant for 2 norm: (x,y) -> sqrt(x^2+y^2)

hypot(float x, float y) -> float
hypot(DM x, DM y) -> DM
hypot(SX x, SX y) -> SX
hypot(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pw

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L742

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L742-L744

if_else(*args)

Ternary if_else: x ? y : z.

if_else(DM cond, DM if_true, DM if_false, bool short_circuit) -> DM
if_else(SX cond, SX if_true, SX if_false, bool short_circuit) -> SX
if_else(MX cond, MX if_true, MX if_false, bool short_circuit) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_113

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sx_elem.hpp#L265

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sx_elem.hpp#L265-L267

interp1d(*args)

Performs 1d linear interpolation.

interp1d([float] x, DM v, [float] xq, str mode, bool equidistant) -> DM
interp1d([float] x, SX v, [float] xq, str mode, bool equidistant) -> SX
interp1d([float] x, MX v, [float] xq, str mode, bool equidistant) -> MX
The data-points to be interpolated are given as (x[i], v[i]). xq[j] is

used as interplating value

Extra doc: https://github.com/casadi/casadi/wiki/L_1bh

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L311

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L311-L314

inv(*args)

Element-wise inverse.

inv(DM A) -> DM
inv(SX A) -> SX
inv(MX A) -> MX
inv(DM A, str lsolver, dict opts) -> DM
inv(SX A, str lsolver, dict opts) -> SX
inv(MX A, str lsolver, dict opts) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_10y

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sx_elem.hpp#L222

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sx_elem.cpp#L159-L165

inv_minor(*args)

Matrix inverse (experimental)

inv_minor(DM A) -> DM
inv_minor(SX A) -> SX
inv_minor(MX A) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1by

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L493

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L493-L493

inv_node(*args)

Inverse node.

inv_node(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_re

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L807

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L807-L809

inv_skew(*args)

Generate the 3-vector progenitor of a skew symmetric matrix.

inv_skew(DM a) -> DM
inv_skew(SX a) -> SX
inv_skew(MX a) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bw

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L481

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L481-L483

is_equal(*args)

Check if two nodes are equivalent up to a given depth.

is_equal(float x, float y, int depth) -> bool
is_equal(DM x, DM y, int depth) -> bool
is_equal(SX x, SX y, int depth) -> bool
is_equal(MX x, MX y, int depth) -> bool

Depth=0 checks if the expressions are identical, i.e. points to the same node.

a = x*x b = x*x

is_equal(a,b,0) will return false, but a.is_equal(a,b,1) will return true

Extra doc: https://github.com/casadi/casadi/wiki/L_pv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L703

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L703-L705

is_linear(*args)

Is expr linear in var?

is_linear(DM expr, DM var) -> bool
is_linear(SX expr, SX var) -> bool
is_linear(MX expr, MX var) -> bool

False negatives are possible (an expression may not be recognised as linear

while it really is), false positives not.

Extra doc: https://github.com/casadi/casadi/wiki/L_1d0

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L895

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L895-L897

is_quadratic(*args)

Is expr quadratic in var?

is_quadratic(DM expr, DM var) -> bool
is_quadratic(SX expr, SX var) -> bool
is_quadratic(MX expr, MX var) -> bool

False negatives are possible (an expression may not be recognised as

quadratic while it really is), false positives not.

Extra doc: https://github.com/casadi/casadi/wiki/L_1d1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L906

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L906-L908

jacobian(*args)

Calculate Jacobian.

jacobian(DM ex, DM arg, dict opts) -> DM
jacobian(SX ex, SX arg, dict opts) -> SX
jacobian(MX ex, MX arg, dict opts) -> MX

Sparse matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_1cv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L799

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L799-L802

jacobian_sparsity(*args)

Get the sparsity pattern of a jacobian.

jacobian_sparsity(DM f, DM x) -> Sparsity
jacobian_sparsity(SX f, SX x) -> Sparsity
jacobian_sparsity(MX f, MX x) -> Sparsity

Equivalent to, but cheaper to compute than, jacobian(f,x). sparsity()

Extra doc: https://github.com/casadi/casadi/wiki/L_259

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L884

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L884-L886

jtimes(*args)

Calculate the Jacobian and multiply by a vector from the right.

jtimes(DM ex, DM arg, DM v, bool tr) -> DM
jtimes(SX ex, SX arg, SX v, bool tr) -> SX
jtimes(MX ex, MX arg, MX v, bool tr) -> MX

This is equivalent to mul(jacobian(ex, arg), v) or mul(jacobian(ex, arg).T, v) for tr set to false and true respectively. If contrast to these

expressions, it will use directional derivatives which is typically (but not necessarily) more efficient if the complete Jacobian is not needed and v has few rows.

Extra doc: https://github.com/casadi/casadi/wiki/L_1cw

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L832

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L832-L835

kron(*args)

Kronecker tensor product.

kron(Sparsity a, Sparsity b) -> Sparsity
kron(DM a, DM b) -> DM
kron(SX a, SX b) -> SX
kron(MX a, MX b) -> MX

Creates a block matrix in which each element (i, j) is a_ij*b

Extra doc: https://github.com/casadi/casadi/wiki/L_47

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L451

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L451-L453

ldivide(*args)
ldivide(float x, float y) -> float
ldivide(DM x, DM y) -> DM
ldivide(SX x, SX y) -> SX
ldivide(MX x, MX y) -> MX
ldl(*args)

Sparse LDL^T factorization.

ldl(DM A, bool amd) -> (DM OUTPUT1, DM OUTPUT2, [int] OUTPUT3)
ldl(SX A, bool amd) -> (SX OUTPUT1, SX OUTPUT2, [int] OUTPUT3)

Returns D and the strictly upper triangular entries of L^T I.e. ones on the

diagonal are ignored. Only guarenteed to work for positive

definite matrices.

Extra doc: https://github.com/casadi/casadi/wiki/L_18w

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L573

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L573-L576

ldl_solve(*args)

Solve using a sparse LDL^T factorization.

ldl_solve(DM b, DM D, DM LT, [int] p) -> DM
ldl_solve(SX b, SX D, SX LT, [int] p) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_18x

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L582

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L582-L585

le(*args)

Logical less or equal to: (x,y) -> x <= y.

le(float x, float y) -> float
le(DM x, DM y) -> DM
le(SX x, SX y) -> SX
le(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_os

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L146

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L146-L148

linear_coeff(*args)

Recognizes linear form in vector expression.

linear_coeff(DM ex, DM arg, bool check) -> (DM OUTPUT1, DM OUTPUT2)
linear_coeff(SX ex, SX arg, bool check) -> (SX OUTPUT1, SX OUTPUT2)
linear_coeff(MX ex, MX arg, bool check) -> (MX OUTPUT1, MX OUTPUT2)

A x + b

1. Parameters:

check[in]: When true (default)m, A is checked to be independent of x. Provided to

deal with false positive dependency checks.

Extra doc: https://github.com/casadi/casadi/wiki/L_1d3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L933

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L933-L936

linearize(*args)

Linearize an expression.

linearize(DM f, DM x, DM x0) -> DM
linearize(SX f, SX x, SX x0) -> SX
linearize(MX f, MX x, MX x0) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1cs

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L740

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L740-L743

linspace(*args)

Matlab’s linspace.

linspace(DM a, DM b, int nsteps) -> DM
linspace(SX a, SX b, int nsteps) -> SX
linspace(MX a, MX b, int nsteps) -> MX

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L836

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/casadi_misc.hpp#L836-L847

log(*args)

Natural logarithm: x -> log(x)

log(float x) -> float
log(DM x) -> DM
log(SX x) -> SX
log(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pg

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L470

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L470-L472

log10(*args)

Base-10 logarithm: x -> log10(x)

log10(float x) -> float
log10(DM x) -> DM
log10(SX x) -> SX
log10(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_ph

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L482

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L482-L484

log1p(*args)

Precision variant for natural logarithm: x -> log(x+1)

log1p(float x) -> float
log1p(DM x) -> DM
log1p(SX x) -> SX
log1p(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L494

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L494-L496

logsumexp(*args)

Scaled version of logsumexp.

logsumexp(DM a) -> DM
logsumexp(SX a) -> SX
logsumexp(MX a) -> MX
logsumexp(DM a, DM margin) -> DM
logsumexp(SX a, SX margin) -> SX
logsumexp(MX a, MX margin) -> MX

Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin

Extra doc: https://github.com/casadi/casadi/wiki/L_1bs

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L451

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L451-L454

low(*args)

Find first nonzero.

low(MX v, MX p, dict options) -> MX

If failed, returns the number of rows

Extra doc: https://github.com/casadi/casadi/wiki/L_r8

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L713

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L713-L715

lt(*args)

Logical less than: (x,y) -> x < y.

lt(float x, float y) -> float
lt(DM x, DM y) -> DM
lt(SX x, SX y) -> SX
lt(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_or

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L131

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L131-L133

mac(*args)

Multiply-accumulate operation.

mac(Sparsity X, Sparsity Y, Sparsity Z) -> Sparsity
mac(DM X, DM Y, DM Z) -> DM
mac(SX X, SX Y, SX Z) -> SX
mac(MX X, MX Y, MX Z) -> MX

Matrix product of two matrices (x and y), adding the result to a third

matrix z. The result has the same sparsity pattern as C meaning that other entries of (x*y) are ignored. The operation is equivalent to:

z+mtimes(x,y).project(z.sparsity()).

Extra doc: https://github.com/casadi/casadi/wiki/L_3x

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L358

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L358-L360

matrix_expand(*args)

Expand MX graph to SXFunction call.

matrix_expand(MX e, [MX] boundary, dict options) -> MX
matrix_expand([MX] e, [MX] boundary, dict options) -> [MX]

Expand the given expression e, optionally supplying expressions contained in it at which expansion should stop.

Extra doc: https://github.com/casadi/casadi/wiki/L_rc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L759

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L759-L763

minor(*args)

Get the (i,j) minor matrix.

minor(DM x, int i, int j) -> DM
minor(SX x, int i, int j) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_18q

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L511

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L511-L513

minus(*args)

Subtraction: (x,y) -> x - y.

minus(float x, float y) -> float
minus(DM x, DM y) -> DM
minus(SX x, SX y) -> SX
minus(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_oo

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L83

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L83-L85

mldivide(*args)

Matrix divide (cf. backslash ‘' in MATLAB)

mldivide(DM x, DM y) -> DM
mldivide(SX x, SX y) -> SX
mldivide(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bm

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L383

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L383-L385

mmax(*args)

Largest element in a matrix.

mmax(DM x) -> DM
mmax(SX x) -> SX
mmax(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1d9

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L997

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L997-L999

mmin(*args)

Smallest element in a matrix.

mmin(DM x) -> DM
mmin(SX x) -> SX
mmin(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1d8

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L988

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L988-L990

mpower(*args)

Matrix power x^n.

mpower(DM x, DM n) -> DM
mpower(SX x, SX n) -> SX
mpower(MX x, MX n) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L319

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L319-L321

mrdivide(*args)

Matrix divide (cf. slash ‘/’ in MATLAB)

mrdivide(DM x, DM y) -> DM
mrdivide(SX x, SX y) -> SX
mrdivide(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bl

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L376

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L376-L378

mtaylor(*args)

multivariate Taylor series expansion

mtaylor(DM ex, DM x, DM a, int order) -> DM
mtaylor(SX ex, SX x, SX a, int order) -> SX
mtaylor(DM ex, DM x, DM a, int order, [int] order_contributions) -> DM
mtaylor(SX ex, SX x, SX a, int order, [int] order_contributions) -> SX

Do Taylor expansions until the aggregated order of a term is equal to

‘order’. The aggregated order of $x^n y^m$ equals $n+m$.

The argument order_contributions can denote how match each variable

contributes to the aggregated order. If x=[x, y] and

order_contributions=[1, 2], then the aggregated order of $x^n y^m$ equals $1n+2m$.

Example usage

>>> taylor(sin(x+y),[x, y],[a, b], 1)

$ sin(b+a)+cos(b+a)(x-a)+cos(b+a)(y-b) $

>>> taylor(sin(x+y),[x, y],[0, 0], 4)

$ y+x-(x^3+3y x^2+3 y^2 x+y^3)/6 $

>>> taylor(sin(x+y),[x, y],[0, 0], 4,[1, 2])

$ (-3 x^2 y-x^3)/6+y+x $

Extra doc: https://github.com/casadi/casadi/wiki/L_23s

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L801

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L801-L805

mtimes(*args)

Matrix product of n matrices.

mtimes([Sparsity] args) -> Sparsity
mtimes([DM] args) -> DM
mtimes([SX] args) -> SX
mtimes([MX] args) -> MX
mtimes(Sparsity x, Sparsity y) -> Sparsity
mtimes(DM x, DM y) -> DM
mtimes(SX x, SX y) -> SX
mtimes(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_3w

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L345

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L345-L347

n_nodes(*args)
n_nodes(DM A) -> int
n_nodes(SX A) -> int
n_nodes(MX A) -> int
ne(*args)

Logical not equal to: (x,y) -> x != y.

ne(float x, float y) -> float
ne(DM x, DM y) -> DM
ne(SX x, SX y) -> SX
ne(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_ow

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L206

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L206-L208

no_grad(*args)

Stop first derivatives of an expression wrt to all its symbolic

no_grad(MX expr) -> MX

variables.

seealso stop_diff

Extra doc: https://github.com/casadi/casadi/wiki/L_25m

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L832

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L832-L834

no_hess(*args)

Stop second derivatives of an expression wrt to all its symbolic

no_hess(MX expr) -> MX

variables.

seealso stop_diff

Extra doc: https://github.com/casadi/casadi/wiki/L_25n

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L841

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L841-L843

norm_0_mul(*args)
norm_0_mul(Sparsity x, Sparsity y) -> int
norm_0_mul(DM x, DM y) -> int
norm_0_mul(SX x, SX y) -> int
norm_0_mul(MX x, MX y) -> int
norm_1(*args)

1-norm

norm_1(DM x) -> DM
norm_1(SX x) -> SX
norm_1(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1c6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L539

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L539-L539

norm_2(*args)

2-norm

norm_2(DM x) -> DM
norm_2(SX x) -> SX
norm_2(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1c5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L534

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L534-L534

norm_fro(*args)

Frobenius norm.

norm_fro(DM x) -> DM
norm_fro(SX x) -> SX
norm_fro(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1c4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L529

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L529-L529

norm_inf(*args)

Infinity-norm.

norm_inf(DM x) -> DM
norm_inf(SX x) -> SX
norm_inf(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1c7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L544

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L544-L544

norm_inf_mul(*args)

Inf-norm of a Matrix-Matrix product.

norm_inf_mul(DM x, DM y) -> DM
norm_inf_mul(SX x, SX y) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_190

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L605

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L605-L607

nullspace(*args)

Computes the nullspace of a matrix A.

nullspace(DM A) -> DM
nullspace(SX A) -> SX
nullspace(MX A) -> MX

Finds Z m-by-(m-n) such that AZ = 0 with A n-by-m with m > n

Assumes A is full rank

Inspired by Numerical Methods in Scientific Computing by Ake Bjorck

Extra doc: https://github.com/casadi/casadi/wiki/L_1cb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L579

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L579-L581

pinv(*args)

Computes the Moore-Penrose pseudo-inverse.

pinv(DM A) -> DM
pinv(SX A) -> SX
pinv(MX A) -> MX
pinv(DM A, str lsolver, dict opts) -> DM
pinv(SX A, str lsolver, dict opts) -> SX
pinv(MX A, str lsolver, dict opts) -> MX

If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the

matrix A is slender (size2<size1), mul(pinv(A), A) is unity.

Extra doc: https://github.com/casadi/casadi/wiki/L_1cu

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L767

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L767-L770

plus(*args)
plus(float x, float y) -> float
plus(DM x, DM y) -> DM
plus(SX x, SX y) -> SX
plus(MX x, MX y) -> MX
poly_coeff(*args)

extracts polynomial coefficients from an expression

poly_coeff(DM ex, DM x) -> DM
poly_coeff(SX ex, SX x) -> SX

1. Parameters:

ex: Scalar expression that represents a polynomial

x: Scalar symbol that the polynomial is build up with

Extra doc: https://github.com/casadi/casadi/wiki/L_197

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L813

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L813-L816

poly_roots(*args)

Attempts to find the roots of a polynomial.

poly_roots(DM p) -> DM
poly_roots(SX p) -> SX

This will only work for polynomials up to order 3 It is assumed that the roots are real.

Extra doc: https://github.com/casadi/casadi/wiki/L_198

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L824

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L824-L826

polyval(*args)

Evaluate a polynomial with coefficients p in x.

polyval(DM p, DM x) -> DM
polyval(SX p, SX x) -> SX
polyval(MX p, MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1cc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L586

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L586-L588

power(*args)
power(float x, float n) -> float
power(DM x, DM n) -> DM
power(SX x, SX n) -> SX
power(MX x, MX n) -> MX
print_operator(*args)

Get a string representation for a binary MatType, using custom

print_operator(DM xb, [str] args) -> str
print_operator(SX xb, [str] args) -> str
print_operator(MX xb, [str] args) -> str

arguments.

Extra doc: https://github.com/casadi/casadi/wiki/L_1d4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L952

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L952-L954

project(*args)

Create a new matrix with a given sparsity pattern but with the.

project(DM A, Sparsity sp, bool intersect) -> DM
project(SX A, Sparsity sp, bool intersect) -> SX
project(MX A, Sparsity sp, bool intersect) -> MX

nonzeros taken from an existing matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_1ch

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L626

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L626-L629

pw_const(*args)

Create a piecewise constant function.

pw_const(DM t, DM tval, DM val) -> DM
pw_const(SX t, SX tval, SX val) -> SX

Create a piecewise constant function with n=val.size() intervals

Inputs:

1. Parameters:

t: a scalar variable (e.g. time)

tval: vector with the discrete values of t at the interval transitions

(length n-1)

val: vector with the value of the function for each interval (length n)

Extra doc: https://github.com/casadi/casadi/wiki/L_193

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L635

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L635-L639

pw_lin(*args)

t a scalar variable (e.g. time)

pw_lin(DM t, DM tval, DM val) -> DM
pw_lin(SX t, SX tval, SX val) -> SX

Create a piecewise linear function

Create a piecewise linear function:

Inputs:

tval vector with the the discrete values of t (monotonically increasing)

val vector with the corresponding function values (same length as tval)

Extra doc: https://github.com/casadi/casadi/wiki/L_194

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L652

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L652-L655

qr(*args)

QR factorization using the modified Gram-Schmidt algorithm.

qr(DM A) -> (DM OUTPUT1, DM OUTPUT2)
qr(SX A) -> (SX OUTPUT1, SX OUTPUT2)
More stable than the classical Gram-Schmidt, but may break down if the

rows of A are nearly linearly dependent See J. Demmel: Applied

Numerical Linear

Algebra (algorithm 3.1.). Note that in SWIG, Q and R

are returned by value.

Extra doc: https://github.com/casadi/casadi/wiki/L_18s

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L530

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L530-L532

qr_solve(*args)

Solve using a sparse QR factorization.

qr_solve(DM b, DM v, DM r, DM beta, [int] prinv, [int] pc, bool tr) -> DM
qr_solve(SX b, SX v, SX r, SX beta, [int] prinv, [int] pc, bool tr) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_18u

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L549

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L549-L554

qr_sparse(*args)

Sparse direct QR factorization.

qr_sparse(DM A, bool amd) -> (DM OUTPUT1, DM OUTPUT2, DM OUTPUT3, [int] OUTPUT4, [int] OUTPUT5)
qr_sparse(SX A, bool amd) -> (SX OUTPUT1, SX OUTPUT2, SX OUTPUT3, [int] OUTPUT4, [int] OUTPUT5)

See T. Davis: Direct Methods for Sparse Linear Systems

Extra doc: https://github.com/casadi/casadi/wiki/L_18t

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L539

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L539-L543

quadratic_coeff(*args)

Recognizes quadratic form in scalar expression.

quadratic_coeff(DM ex, DM arg, bool check) -> (DM OUTPUT1, DM OUTPUT2, DM OUTPUT3)
quadratic_coeff(SX ex, SX arg, bool check) -> (SX OUTPUT1, SX OUTPUT2, SX OUTPUT3)
quadratic_coeff(MX ex, MX arg, bool check) -> (MX OUTPUT1, MX OUTPUT2, MX OUTPUT3)

1/2*x’ A x + b’ x + c

e = 0.5*bilin(A,x,x)+dot(b,x)+c

1. Parameters:

check[in]: When true (default), A is checked to be independent of x. Provided to deal with false positive dependency checks.

Extra doc: https://github.com/casadi/casadi/wiki/L_1d2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L920

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L920-L923

ramp(*args)

ramp function

ramp(DM x) -> DM
ramp(SX x) -> SX

[ begin {cases} R(x) = 0 & x <= 1 \ R(x) = x & x > 1

\ end {cases} ]

Also called: slope function

Extra doc: https://github.com/casadi/casadi/wiki/L_23p

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L717

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L717-L719

rank1(*args)

Make a rank-1 update to a matrix A.

rank1(DM A, DM alpha, DM x, DM y) -> DM
rank1(SX A, SX alpha, SX x, SX y) -> SX
rank1(MX A, MX alpha, MX x, MX y) -> MX

Calculates A + 1/2 * alpha * x*y’

Extra doc: https://github.com/casadi/casadi/wiki/L_1bp

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L422

rdivide(*args)

Elementwise division: (x,y) -> x ./ y.

rdivide(float x, float y) -> float
rdivide(DM x, DM y) -> DM
rdivide(SX x, SX y) -> SX
rdivide(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_oq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L115

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L115-L117

rectangle(*args)

rectangle function

rectangle(DM x) -> DM
rectangle(SX x) -> SX
[ begin {cases} Pi(x) = 1 & |x| < 1/2 \ Pi(x) =

1/2

& |x| = 1/2 \ Pi(x) = 0 & |x| > 1/2 \ end {cases} ]

Also called: gate function, block function, band function, pulse function, window function

Extra doc: https://github.com/casadi/casadi/wiki/L_23n

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L685

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L685-L687

remainder(*args)

Remainder after division: (x,y) -> remainder(x,y)

remainder(float x, float y) -> float
remainder(DM x, DM y) -> DM
remainder(SX x, SX y) -> SX
remainder(MX x, MX y) -> MX

This Function follows the convention of https://en.cppreference.com/w/c/numeric/math/remainder

Notably: remainder(5,3) -> -1

remainder(5,-3) -> -1

remainder(-5,3) -> 1

remainder(-5,-3) -> 1

This is equivalent to Python’s math.remainder. There is no equivalence

in

Matlab.

seealso fmod

Extra doc: https://github.com/casadi/casadi/wiki/L_24x

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L634

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L634-L636

repmat(*args)

Repeat matrix A n times vertically and m times horizontally.

repmat(Sparsity A, int n, int m) -> Sparsity
repmat(Sparsity A, (int,int) rc) -> Sparsity
repmat(DM A, int n, int m) -> DM
repmat(DM A, (int,int) rc) -> DM
repmat(SX A, int n, int m) -> SX
repmat(SX A, (int,int) rc) -> SX
repmat(MX A, int n, int m) -> MX
repmat(MX A, (int,int) rc) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_49

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L465

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L465-L467

repsum(*args)

Given a repeated matrix, computes the sum of repeated parts.

repsum(DM A, int n, int m) -> DM
repsum(SX A, int n, int m) -> SX
repsum(MX A, int n, int m) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1d7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L980

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L980-L982

reshape(*args)

Reshape the matrix.

reshape(Sparsity a, (int,int) rc) -> Sparsity
reshape(Sparsity a, Sparsity sp) -> Sparsity
reshape(DM a, (int,int) rc) -> DM
reshape(DM a, Sparsity sp) -> DM
reshape(SX a, (int,int) rc) -> SX
reshape(SX a, Sparsity sp) -> SX
reshape(MX a, (int,int) rc) -> MX
reshape(MX a, Sparsity sp) -> MX
reshape(Sparsity a, int nrow, int ncol) -> Sparsity
reshape(DM a, int nrow, int ncol) -> DM
reshape(SX a, int nrow, int ncol) -> SX
reshape(MX a, int nrow, int ncol) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_42

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L407

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L407-L409

shared(*args)

Get a shared (owning) reference.

shared([DM] ex, str v_prefix, str v_suffix) -> ([DM] OUTPUT1, [DM] OUTPUT2, [DM] OUTPUT3)
shared([SX] ex, str v_prefix, str v_suffix) -> ([SX] OUTPUT1, [SX] OUTPUT2, [SX] OUTPUT3)
shared([MX] ex, str v_prefix, str v_suffix) -> ([MX] OUTPUT1, [MX] OUTPUT2, [MX] OUTPUT3)

Extra doc: https://github.com/casadi/casadi/wiki/L_b0

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/shared_object.hpp#L198

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/shared_object.cpp#L141-L147

sign(*args)

Sign function:

sign(float x) -> float
sign(DM x) -> DM
sign(SX x) -> SX
sign(MX x) -> MX

sign(x) := -1 for x<0 sign(x) := 1 for x>0, sign(0) := 0 sign(NaN) := NaN

Extra doc: https://github.com/casadi/casadi/wiki/L_po

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L571

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L571-L573

simplify(*args)

Simplify an expression.

simplify(float x) -> float
simplify(DM x) -> DM
simplify(SX x) -> SX
simplify(MX x) -> MX

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L944

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L944-L946

sin(*args)

Sine: x -> sin(x)

sin(float x) -> float
sin(DM x) -> DM
sin(SX x) -> SX
sin(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L314

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L314-L316

sinh(*args)

Hyperbolic sin: x -> sinh(x)

sinh(float x) -> float
sinh(DM x) -> DM
sinh(SX x) -> SX
sinh(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_pa

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L398

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L398-L400

skew(*args)

Generate a skew symmetric matrix from a 3-vector.

skew(DM a) -> DM
skew(SX a) -> SX
skew(MX a) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L474

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L474-L476

soc(*args)

Construct second-order-convex.

soc(DM x, DM y) -> DM
soc(SX x, SX y) -> SX
soc(MX x, MX y) -> MX

1. Parameters:

x: vector expression of size n

y: scalar expression

soc(x,y) computes [y*eye(n) x; x’ y]

soc(x,y) positive semi definite <=> || x ||_2 <= y

Extra doc: https://github.com/casadi/casadi/wiki/L_1bj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L334

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L334-L336

solve(*args)

Crunch the numbers; solve the problem.

solve(DM A, DM b) -> DM
solve(SX A, SX b) -> SX
solve(MX A, MX b) -> MX
solve(DM A, DM b, str lsolver, dict opts) -> DM
solve(SX A, SX b, str lsolver, dict opts) -> SX
solve(MX A, MX b, str lsolver, dict opts) -> MX

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/optistack.hpp#L221

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/optistack.cpp#L161-L167

sparsify(*args)

Make a matrix sparse by removing numerical zeros.

sparsify(DM A, float tol) -> DM
sparsify(SX A, float tol) -> SX

Extra doc: https://github.com/casadi/casadi/wiki/L_191

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L613

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L613-L615

sparsity_cast(*args)

Cast matrix nonzeros to different Sparsity.

sparsity_cast(Sparsity a, Sparsity sp) -> Sparsity
sparsity_cast(DM a, Sparsity sp) -> DM
sparsity_cast(SX a, Sparsity sp) -> SX
sparsity_cast(MX a, Sparsity sp) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_24z

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L414

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L414-L416

sprank(*args)
sprank(Sparsity A) -> int
sprank(DM A) -> int
sprank(SX A) -> int
sprank(MX A) -> int
sqrt(*args)

Square root: x -> sqrt(x)

sqrt(float x) -> float
sqrt(DM x) -> DM
sqrt(SX x) -> SX
sqrt(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L290

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L290-L292

stop_diff(*args)

Stop derivatives of an expression wrt to a select set of symbolic

stop_diff(MX expr, int order) -> MX
stop_diff(MX expr, MX var, int order) -> MX

variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_25o

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L849

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L849-L851

substitute(*args)

Substitute variable var with expression expr in multiple expressions.

substitute(DM ex, DM v, DM vdef) -> DM
substitute([DM] ex, [DM] v, [DM] vdef) -> [DM]
substitute(SX ex, SX v, SX vdef) -> SX
substitute([SX] ex, [SX] v, [SX] vdef) -> [SX]
substitute(MX ex, MX v, MX vdef) -> MX
substitute([MX] ex, [MX] v, [MX] vdef) -> [MX]

Extra doc: https://github.com/casadi/casadi/wiki/L_1cm

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L673

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L673-L676

substitute_inplace(*args)

Inplace substitution with piggyback expressions.

substitute_inplace([DM] v, bool reverse) -> ([DM] INOUT1, [DM] INOUT2)
substitute_inplace([SX] v, bool reverse) -> ([SX] INOUT1, [SX] INOUT2)
substitute_inplace([MX] v, bool reverse) -> ([MX] INOUT1, [MX] INOUT2)

Substitute variables v out of the expressions vdef sequentially, as well as

out of a number of other expressions piggyback

Extra doc: https://github.com/casadi/casadi/wiki/L_1cn

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L685

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L685-L689

sum1(*args)

Return a row-wise summation of elements.

sum1(Sparsity x) -> Sparsity
sum1(DM x) -> DM
sum1(SX x) -> SX
sum1(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_4p

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L586

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L586-L586

sum2(*args)

Return a column-wise summation of elements.

sum2(Sparsity x) -> Sparsity
sum2(DM x) -> DM
sum2(SX x) -> SX
sum2(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_4q

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L591

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L591-L591

sumsqr(*args)

Calculate sum of squares: sum_ij X_ij^2.

sumsqr(DM X) -> DM
sumsqr(SX X) -> SX
sumsqr(MX X) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1bq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L429

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L429-L431

symvar(*args)

Get symbols present in expression.

symvar(DM x) -> [DM]
symvar(SX x) -> [SX]
symvar(MX x) -> [MX]
Returned vector is ordered according to the order of variable()/parameter()

calls used to create the variables

Extra doc: https://github.com/casadi/casadi/wiki/L_1u

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/optistack.hpp#L548

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/optistack.cpp#L440-L446

tan(*args)

Tangent: x -> tan(x)

tan(float x) -> float
tan(DM x) -> DM
tan(SX x) -> SX
tan(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L338

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L338-L340

tangent(*args)

Calculate the tangent of an expression.

tangent(DM ex, DM arg) -> DM
tangent(SX ex, SX arg) -> SX
tangent(MX ex, MX arg) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_23y

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L819

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L819-L821

tanh(*args)

Hyperbolic tangent: x -> tanh(x)

tanh(float x) -> float
tanh(DM x) -> DM
tanh(SX x) -> SX
tanh(MX x) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_p9

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L386

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L386-L388

taylor(*args)

univariate Taylor series expansion

taylor(DM ex, DM x, DM a, int order) -> DM
taylor(SX ex, SX x, SX a, int order) -> SX

Calculate the Taylor expansion of expression ‘ex’ up to order ‘order’ with respect to variable ‘x’ around the point ‘a’

$(x)=f(a)+f’(a)(x-a)+f’’(a)frac

{(x-a)^2}{2!}+f’’’(a)frac{(x-a)^3}{3!}+ldots$

Example usage:

>>> taylor(sin(x), x)
>>   x

Extra doc: https://github.com/casadi/casadi/wiki/L_23q

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L758

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L758-L760

times(*args)

Elementwise multiplication: (x,y) -> x .* y.

times(float x, float y) -> float
times(DM x, DM y) -> DM
times(SX x, SX y) -> SX
times(MX x, MX y) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_op

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L99

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_expression.hpp#L99-L101

trace(*args)

Matrix trace.

trace(DM a) -> DM
trace(SX a) -> SX
trace(MX a) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1c1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L514

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L514-L514

transpose(*args)

Transpose.

transpose(Sparsity X) -> Sparsity
transpose(DM X) -> DM
transpose(SX X) -> SX
transpose(MX X) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_3y

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L365

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L365-L367

triangle(*args)

triangle function

triangle(DM x) -> DM
triangle(SX x) -> SX

[ begin {cases} Lambda(x) = 0 & |x| >= 1 \ Lambda(x)

= 1-|x| & |x| < 1 end {cases} ]

Extra doc: https://github.com/casadi/casadi/wiki/L_23o

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L700

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L700-L702

tril(*args)

Get the lower triangular part of a matrix.

tril(Sparsity a, bool includeDiagonal) -> Sparsity
tril(DM a, bool includeDiagonal) -> DM
tril(SX a, bool includeDiagonal) -> SX
tril(MX a, bool includeDiagonal) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_46

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L442

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L442-L444

tril2symm(*args)

Convert a lower triangular matrix to a symmetric one.

tril2symm(DM a) -> DM
tril2symm(SX a) -> SX
tril2symm(MX a) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1c2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L519

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L519-L519

triu(*args)

Get the upper triangular part of a matrix.

triu(Sparsity a, bool includeDiagonal) -> Sparsity
triu(DM a, bool includeDiagonal) -> DM
triu(SX a, bool includeDiagonal) -> SX
triu(MX a, bool includeDiagonal) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_45

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L435

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L435-L437

triu2symm(*args)

Convert a upper triangular matrix to a symmetric one.

triu2symm(DM a) -> DM
triu2symm(SX a) -> SX
triu2symm(MX a) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1c3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L524

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L524-L524

unite(*args)

Unite two matrices no overlapping sparsity.

unite(DM A, DM B) -> DM
unite(SX A, SX B) -> SX
unite(MX A, MX B) -> MX

Extra doc: https://github.com/casadi/casadi/wiki/L_1ce

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L603

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L603-L605

vec(*args)

make a vector

vec(Sparsity a) -> Sparsity
vec(DM a) -> DM
vec(SX a) -> SX
vec(MX a) -> MX

Reshapes/vectorizes the matrix such that the shape becomes (expr.numel(), 1). Columns are stacked on top of each other. Same as reshape(expr, expr.numel(), 1)

a c b d

turns into

a b c d

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L386

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/sparsity_interface.hpp#L386-L388

which_depends(*args)

Find out which variables enter with some order.

which_depends(DM expr, DM var, int order, bool tr) -> [bool]
which_depends(SX expr, SX var, int order, bool tr) -> [bool]
which_depends(MX expr, MX var, int order, bool tr) -> [bool]

Extra doc: https://github.com/casadi/casadi/wiki/L_1cz

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L874

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/generic_matrix.hpp#L874-L877

2. Classes

2.1. DM

class DM(*args)
.. py:method:: DM.assign(*args)
module:

casadi.casadi

assign(self, DM rhs)
static binary(*args)
binary(int op, DM x, DM y) -> DM
clear(*args)

[INTERNAL]

clear(self)
dep(*args)
dep(self, int ch) -> DM
static deserialize(*args)
deserialize(std::istream & stream) -> DM
deserialize(casadi::DeserializingStream & s) -> DM
deserialize(str s) -> DM
disp(*args)

[INTERNAL]

disp(self, bool more)

Print a representation of the object.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L877

element_hash(*args)
element_hash(self) -> int
elements(*args)

[INTERNAL]

elements(self) -> [float]

Get all elements.

Extra doc: https://github.com/casadi/casadi/wiki/L_1a3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1150

enlarge(*args)

[INTERNAL]

enlarge(self, int nrow, int ncol, [int] rr, [int] cc, bool ind1)

Enlarge matrix.

Make the matrix larger by inserting empty rows and columns, keeping the existing non-zeros

Extra doc: https://github.com/casadi/casadi/wiki/L_19i

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L952

erase(*args)

[INTERNAL]

erase(self, [int] rr, bool ind1)
erase(self, [int] rr, [int] cc, bool ind1)

Erase a submatrix (leaving structural zeros in its place)

Erase elements of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19g

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L937


erase(self, [int] rr, bool ind1)

[INTERNAL] Erase a submatrix (leaving structural zeros in its place)

Erase elements of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19g

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L937



erase(self, [int] rr, [int] cc, bool ind1)

[INTERNAL] Erase a submatrix (leaving structural zeros in its place)

Erase rows and/or columns of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19f

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L929


export_code(*args)
export_code(self, str lang, dict options)
static eye(*args)
eye(int n) -> DM
static from_file(*args)
from_file(str filename, str format_hint) -> DM
full(*args)
full(self) -> PyObject *
get(*args)
get(self, bool ind1, Sparsity sp) -> DM
get(self, bool ind1, Slice rr) -> DM
get(self, bool ind1, IM rr) -> DM
get(self, bool ind1, Slice rr, Slice cc) -> DM
get(self, bool ind1, Slice rr, IM cc) -> DM
get(self, bool ind1, IM rr, Slice cc) -> DM
get(self, bool ind1, IM rr, IM cc) -> DM
static get_free(*args)
get_free(Function f) -> [DM]
static get_input(*args)
get_input(Function f) -> [DM]
static get_max_depth(*args)
get_max_depth() -> int
get_nz(*args)
get_nz(self, bool ind1, Slice k) -> DM
get_nz(self, bool ind1, IM k) -> DM
has_duplicates(*args)
has_duplicates(self) -> bool
has_nz(*args)

[INTERNAL]

has_nz(self, int rr, int cc) -> bool

Returns true if the matrix has a non-zero at location rr, cc.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L219

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L65-L67

has_zeros(*args)

[INTERNAL]

has_zeros(self) -> bool

Check if the matrix has any zero entries which are not structural zeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1a1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1140

static inf(*args)

[INTERNAL]

inf(int nrow, int ncol) -> DM
inf((int,int) rc) -> DM
inf(Sparsity sp) -> DM

create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1005


inf(int nrow, int ncol)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1004



inf((int,int) rc)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1005



inf(Sparsity sp)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1003


info(*args)
info(self) -> dict
is_commutative(*args)
is_commutative(self) -> bool
is_constant(*args)

[INTERNAL]

is_constant(self) -> bool

Check if the matrix is constant (note that false negative answers are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19v

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1100

is_eye(*args)

[INTERNAL]

is_eye(self) -> bool

check if the matrix is an identity matrix (note that false negative answers

are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_1a0

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1129

is_integer(*args)

[INTERNAL]

is_integer(self) -> bool

Check if the matrix is integer-valued.

(note that false negative answers are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19w

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1107

is_leaf(*args)
is_leaf(self) -> bool
is_minus_one(*args)

[INTERNAL]

is_minus_one(self) -> bool

check if the matrix is -1 (note that false negative answers are

possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19z

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1122

is_one(*args)

[INTERNAL]

is_one(self) -> bool

check if the matrix is 1 (note that false negative answers are

possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19y

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1117

is_op(*args)
is_op(self, int op) -> bool
is_regular(*args)
is_regular(self) -> bool
is_smooth(*args)
is_smooth(self) -> bool
is_symbolic(*args)
is_symbolic(self) -> bool
is_valid_input(*args)
is_valid_input(self) -> bool
is_zero(*args)

[INTERNAL]

is_zero(self) -> bool

check if the matrix is 0 (note that false negative answers are

possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19x

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1112

static matrix_matrix(*args)
matrix_matrix(int op, DM x, DM y) -> DM
static matrix_scalar(*args)
matrix_scalar(int op, DM x, DM y) -> DM
n_dep(*args)
n_dep(self) -> int
name(*args)
name(self) -> str
static nan(*args)

[INTERNAL]

nan(int nrow, int ncol) -> DM
nan((int,int) rc) -> DM
nan(Sparsity sp) -> DM

create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1014


nan(int nrow, int ncol)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1013



nan((int,int) rc)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1014



nan(Sparsity sp)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1012


nonzeros(*args)

[INTERNAL]

nonzeros(self) -> [float]

Get all nonzeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1a4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1157

op(*args)
op(self) -> int
print_dense(*args)

[INTERNAL]

print_dense(self, bool truncate)

Print dense matrix-stype.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L889

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L686-L688

print_scalar(*args)

[INTERNAL]

print_scalar(self)

Print scalar.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L883

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L609-L633

print_sparse(*args)

[INTERNAL]

print_sparse(self, bool truncate)

Print sparse matrix style.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L892

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L691-L693

print_split(*args)

[INTERNAL]

print_split(self) -> ([str] OUTPUT, [str] OUTPUT)

Get strings corresponding to the nonzeros and the interdependencies.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L873

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L696-L700

print_vector(*args)

[INTERNAL]

print_vector(self, bool truncate)

Print vector-style.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L886

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L636-L638

printme(*args)
printme(self, DM y) -> DM
static rand(*args)

[INTERNAL]

rand(int nrow, int ncol) -> DM
rand((int,int) rc) -> DM
rand(Sparsity sp) -> DM

Create a matrix with uniformly distributed random numbers.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ab

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1216


rand(Sparsity sp)


rand(int nrow, int ncol)

[INTERNAL] Create a matrix with uniformly distributed random numbers.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ab

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1212



rand((int,int) rc)

[INTERNAL] Create a matrix with uniformly distributed random numbers.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ab

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1216


remove(*args)

[INTERNAL]

remove(self, [int] rr, [int] cc)

Remove columns and rows.

Remove/delete rows and/or columns of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19h

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L944

reserve(*args)

[INTERNAL]

reserve(self, int nnz)
reserve(self, int nnz, int ncol)
reset_input(*args)
reset_input(self)
resize(*args)

[INTERNAL]

resize(self, int nrow, int ncol)
static rng(*args)
rng(int seed)
static scalar_matrix(*args)
scalar_matrix(int op, DM x, DM y) -> DM
serialize(*args)

[INTERNAL]

serialize(self) -> str
serialize(self, casadi::SerializingStream & s)

Serialize an object.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ah

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1264


serialize(self, casadi::SerializingStream & s)

[INTERNAL] Serialize an object.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ah

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1264



serialize(self)

[INTERNAL] Serialize.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ae

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1249


set(*args)
set(self, DM m, bool ind1, Sparsity sp)
set(self, DM m, bool ind1, Slice rr)
set(self, DM m, bool ind1, IM rr)
set(self, DM m, bool ind1, Slice rr, Slice cc)
set(self, DM m, bool ind1, Slice rr, IM cc)
set(self, DM m, bool ind1, IM rr, Slice cc)
set(self, DM m, bool ind1, IM rr, IM cc)
static set_max_depth(*args)
set_max_depth(int eq_depth)
set_nz(*args)
set_nz(self, DM m, bool ind1, Slice k)
set_nz(self, DM m, bool ind1, IM k)
static set_precision(*args)
set_precision(int precision)
static set_scientific(*args)
set_scientific(bool scientific)
static set_width(*args)
set_width(int width)
sparse(*args)
sparse(self) -> PyObject *
sparsity(*args)

[INTERNAL]

sparsity(self) -> Sparsity

Get an owning reference to the sparsity pattern.

Extra doc: https://github.com/casadi/casadi/wiki/L_19j

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L979

str(*args)

[INTERNAL]

str(self, bool more) -> str

Get string representation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L880

to_file(*args)

[INTERNAL]

to_file(self, str filename, str format)

Export numerical matrix to file

Supported formats:

*   - .mtx   Matrix Market (sparse)
*   - .txt   Ascii full precision representation (sparse)
*            Whitespace separated, aligned.
*            Comments with # % or /
*            Uses C locale
*            Structural zeros represented by 00
*            Does not scale well for large sparse matrices
*

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1284

static triplet(*args)
triplet([int] row, [int] col, DM d) -> DM
triplet([int] row, [int] col, DM d, (int,int) rc) -> DM
triplet([int] row, [int] col, DM d, int nrow, int ncol) -> DM
static type_name(*args)
type_name() -> str
static unary(*args)
unary(int op, DM x) -> DM

2.2. SX

class SX(*args)
.. py:method:: SX.binary(*args)
module:

casadi.casadi

staticmethod:

binary(int op, SX x, SX y) -> SX
clear(*args)

[INTERNAL]

clear(self)
dep(*args)
dep(self, int ch) -> SX
static deserialize(*args)
deserialize(std::istream & stream) -> SX
deserialize(casadi::DeserializingStream & s) -> SX
deserialize(str s) -> SX
disp(*args)

[INTERNAL]

disp(self, bool more)

Print a representation of the object.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L877

element_hash(*args)
element_hash(self) -> int
elements(*args)

[INTERNAL]

elements(self) -> [SXElem]

Get all elements.

Extra doc: https://github.com/casadi/casadi/wiki/L_1a3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1150

enlarge(*args)

[INTERNAL]

enlarge(self, int nrow, int ncol, [int] rr, [int] cc, bool ind1)

Enlarge matrix.

Make the matrix larger by inserting empty rows and columns, keeping the existing non-zeros

Extra doc: https://github.com/casadi/casadi/wiki/L_19i

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L952

erase(*args)

[INTERNAL]

erase(self, [int] rr, bool ind1)
erase(self, [int] rr, [int] cc, bool ind1)

Erase a submatrix (leaving structural zeros in its place)

Erase elements of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19g

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L937


erase(self, [int] rr, bool ind1)

[INTERNAL] Erase a submatrix (leaving structural zeros in its place)

Erase elements of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19g

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L937



erase(self, [int] rr, [int] cc, bool ind1)

[INTERNAL] Erase a submatrix (leaving structural zeros in its place)

Erase rows and/or columns of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19f

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L929


export_code(*args)
export_code(self, str lang, dict options)
static eye(*args)
eye(int n) -> SX
static from_file(*args)
from_file(str filename, str format_hint) -> DM
get(*args)
get(self, bool ind1, Sparsity sp) -> SX
get(self, bool ind1, Slice rr) -> SX
get(self, bool ind1, IM rr) -> SX
get(self, bool ind1, Slice rr, Slice cc) -> SX
get(self, bool ind1, Slice rr, IM cc) -> SX
get(self, bool ind1, IM rr, Slice cc) -> SX
get(self, bool ind1, IM rr, IM cc) -> SX
static get_free(*args)
get_free(Function f) -> [SX]
static get_input(*args)
get_input(Function f) -> [SX]
static get_max_depth(*args)
get_max_depth() -> int
get_nz(*args)
get_nz(self, bool ind1, Slice k) -> SX
get_nz(self, bool ind1, IM k) -> SX
has_duplicates(*args)
has_duplicates(self) -> bool
has_nz(*args)

[INTERNAL]

has_nz(self, int rr, int cc) -> bool

Returns true if the matrix has a non-zero at location rr, cc.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L219

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L65-L67

has_zeros(*args)

[INTERNAL]

has_zeros(self) -> bool

Check if the matrix has any zero entries which are not structural zeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1a1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1140

static inf(*args)

[INTERNAL]

inf(int nrow, int ncol) -> SX
inf((int,int) rc) -> SX
inf(Sparsity sp) -> SX

create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1005


inf(int nrow, int ncol)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1004



inf((int,int) rc)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1005



inf(Sparsity sp)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_19k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1003


info(*args)
info(self) -> dict
is_commutative(*args)
is_commutative(self) -> bool
is_constant(*args)

[INTERNAL]

is_constant(self) -> bool

Check if the matrix is constant (note that false negative answers are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19v

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1100

is_eye(*args)

[INTERNAL]

is_eye(self) -> bool

check if the matrix is an identity matrix (note that false negative answers

are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_1a0

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1129

is_integer(*args)

[INTERNAL]

is_integer(self) -> bool

Check if the matrix is integer-valued.

(note that false negative answers are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19w

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1107

is_leaf(*args)
is_leaf(self) -> bool
is_minus_one(*args)

[INTERNAL]

is_minus_one(self) -> bool

check if the matrix is -1 (note that false negative answers are

possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19z

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1122

is_one(*args)

[INTERNAL]

is_one(self) -> bool

check if the matrix is 1 (note that false negative answers are

possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19y

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1117

is_op(*args)
is_op(self, int op) -> bool
is_regular(*args)
is_regular(self) -> bool
is_smooth(*args)
is_smooth(self) -> bool
is_symbolic(*args)
is_symbolic(self) -> bool
is_valid_input(*args)
is_valid_input(self) -> bool
is_zero(*args)

[INTERNAL]

is_zero(self) -> bool

check if the matrix is 0 (note that false negative answers are

possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_19x

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1112

static matrix_matrix(*args)
matrix_matrix(int op, SX x, SX y) -> SX
static matrix_scalar(*args)
matrix_scalar(int op, SX x, SX y) -> SX
n_dep(*args)
n_dep(self) -> int
name(*args)
name(self) -> str
static nan(*args)

[INTERNAL]

nan(int nrow, int ncol) -> SX
nan((int,int) rc) -> SX
nan(Sparsity sp) -> SX

create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1014


nan(int nrow, int ncol)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1013



nan((int,int) rc)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1014



nan(Sparsity sp)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_19l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1012


nonzeros(*args)

[INTERNAL]

nonzeros(self) -> [SXElem]

Get all nonzeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1a4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1157

op(*args)
op(self) -> int
print_dense(*args)

[INTERNAL]

print_dense(self, bool truncate)

Print dense matrix-stype.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L889

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L686-L688

print_scalar(*args)

[INTERNAL]

print_scalar(self)

Print scalar.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L883

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L609-L633

print_sparse(*args)

[INTERNAL]

print_sparse(self, bool truncate)

Print sparse matrix style.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L892

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L691-L693

print_split(*args)

[INTERNAL]

print_split(self) -> ([str] OUTPUT, [str] OUTPUT)

Get strings corresponding to the nonzeros and the interdependencies.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L873

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L696-L700

print_vector(*args)

[INTERNAL]

print_vector(self, bool truncate)

Print vector-style.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L886

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_impl.hpp#L636-L638

printme(*args)
printme(self, SX y) -> SX
static rand(*args)

[INTERNAL]

rand(int nrow, int ncol) -> SX
rand((int,int) rc) -> SX
rand(Sparsity sp) -> SX

Create a matrix with uniformly distributed random numbers.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ab

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1216


rand(Sparsity sp)


rand(int nrow, int ncol)

[INTERNAL] Create a matrix with uniformly distributed random numbers.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ab

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1212



rand((int,int) rc)

[INTERNAL] Create a matrix with uniformly distributed random numbers.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ab

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1216


remove(*args)

[INTERNAL]

remove(self, [int] rr, [int] cc)

Remove columns and rows.

Remove/delete rows and/or columns of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_19h

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L944

reserve(*args)

[INTERNAL]

reserve(self, int nnz)
reserve(self, int nnz, int ncol)
reset_input(*args)
reset_input(self)
resize(*args)

[INTERNAL]

resize(self, int nrow, int ncol)
static rng(*args)
rng(int seed)
static scalar_matrix(*args)
scalar_matrix(int op, SX x, SX y) -> SX
serialize(*args)

[INTERNAL]

serialize(self) -> str
serialize(self, casadi::SerializingStream & s)

Serialize an object.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ah

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1264


serialize(self, casadi::SerializingStream & s)

[INTERNAL] Serialize an object.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ah

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1264



serialize(self)

[INTERNAL] Serialize.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ae

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1249


set(*args)
set(self, SX m, bool ind1, Sparsity sp)
set(self, SX m, bool ind1, Slice rr)
set(self, SX m, bool ind1, IM rr)
set(self, SX m, bool ind1, Slice rr, Slice cc)
set(self, SX m, bool ind1, Slice rr, IM cc)
set(self, SX m, bool ind1, IM rr, Slice cc)
set(self, SX m, bool ind1, IM rr, IM cc)
static set_max_depth(*args)
set_max_depth(int eq_depth)
set_nz(*args)
set_nz(self, SX m, bool ind1, Slice k)
set_nz(self, SX m, bool ind1, IM k)
static set_precision(*args)
set_precision(int precision)
static set_scientific(*args)
set_scientific(bool scientific)
static set_width(*args)
set_width(int width)
sparsity(*args)

[INTERNAL]

sparsity(self) -> Sparsity

Get an owning reference to the sparsity pattern.

Extra doc: https://github.com/casadi/casadi/wiki/L_19j

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L979

str(*args)

[INTERNAL]

str(self, bool more) -> str

Get string representation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L880

to_file(*args)

[INTERNAL]

to_file(self, str filename, str format)

Export numerical matrix to file

Supported formats:

*   - .mtx   Matrix Market (sparse)
*   - .txt   Ascii full precision representation (sparse)
*            Whitespace separated, aligned.
*            Comments with # % or /
*            Uses C locale
*            Structural zeros represented by 00
*            Does not scale well for large sparse matrices
*

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/matrix_decl.hpp#L1284

static triplet(*args)
triplet([int] row, [int] col, SX d) -> SX
triplet([int] row, [int] col, SX d, (int,int) rc) -> SX
triplet([int] row, [int] col, SX d, int nrow, int ncol) -> SX
static type_name(*args)
type_name() -> str
static unary(*args)
unary(int op, SX x) -> SX

2.3. MX

class MX(*args)

[INTERNAL]

MX -  Matrix expression.

The MX class is used to build up trees made up from MXNodes. It is a more

general graph representation than the scalar expression, SX, and much less efficient for small objects. On the other hand, the class allows much more general operations than does SX, in particular matrix valued

operations and calls to arbitrary differentiable functions.

The MX class is designed to have identical syntax with the Matrix<> template

class, and uses DM (i.e. Matrix<double>) as its internal

representation of the values at a node. By keeping the syntaxes identical, it is possible to switch from one class to the other, as well as inlining MX functions to SXElem functions.

Note that an operation is always “lazy”, making a matrix multiplication will create a matrix multiplication node, not perform the actual multiplication.

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_py

C++ includes: mx.hpp

attachAssert(*args)

[INTERNAL]

attachAssert(self, MX y, str fail_message) -> MX

returns itself, but with an assertion attached

If y does not evaluate to 1, a runtime error is raised

Extra doc: https://github.com/casadi/casadi/wiki/L_rg

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L866

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L699-L704

static binary(*args)

[INTERNAL]

binary(int op, MX x, MX y) -> MX

Create nodes by their ID.

Extra doc: https://github.com/casadi/casadi/wiki/L_r1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L411

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L507-L532

static bspline_dual(*args)

[INTERNAL]

bspline_dual([float] x, [[float]] knots, [int] degree, dict opts) -> DM
dep(*args)

[INTERNAL]

dep(self, int ch) -> MX

Get the nth dependency as MX.

Extra doc: https://github.com/casadi/casadi/wiki/L_qj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L236

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L730-L732

static deserialize(*args)
deserialize(casadi::DeserializingStream & s) -> MX
static einstein(*args)

[INTERNAL]

einstein(MX A, MX B, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> MX
einstein(MX A, MX B, MX C, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c) -> MX

Computes an einstein dense tensor contraction.

Computes the product: C_c = A_a + B_b where a b c are index/einstein

notation in an encoded form

For example, an matrix-matrix product may be written as: C_ij = A_ik B_kj

The encoded form uses strictly negative numbers to indicate labels. For the

above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}

Extra doc: https://github.com/casadi/casadi/wiki/L_r5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L533

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L646-L652


einstein(MX A, MX B, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c)

[INTERNAL] Computes an einstein dense tensor contraction.

Computes the product: C_c = A_a + B_b where a b c are index/einstein

notation in an encoded form

For example, an matrix-matrix product may be written as: C_ij = A_ik B_kj

The encoded form uses strictly negative numbers to indicate labels. For the

above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}

Extra doc: https://github.com/casadi/casadi/wiki/L_r5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L533

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L646-L652



einstein(MX A, MX B, MX C, [int] dim_a, [int] dim_b, [int] dim_c, [int] a, [int] b, [int] c)

[INTERNAL] Computes an einstein dense tensor contraction.

Computes the product: C_c = A_a + B_b where a b c are index/einstein

notation in an encoded form

For example, an matrix-matrix product may be written as: C_ij = A_ik B_kj

The encoded form uses strictly negative numbers to indicate labels. For the

above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}

Extra doc: https://github.com/casadi/casadi/wiki/L_r5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L527

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L638-L644


enlarge(*args)

[INTERNAL]

enlarge(self, int nrow, int ncol, [int] rr, [int] cc, bool ind1)

Enlarge matrix.

Make the matrix larger by inserting empty rows and columns, keeping the existing non-zeros

Extra doc: https://github.com/casadi/casadi/wiki/L_qg

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L211

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L618-L626

erase(*args)

[INTERNAL]

erase(self, [int] rr, bool ind1)
erase(self, [int] rr, [int] cc, bool ind1)

Erase a submatrix (leaving structural zeros in its place)

Erase elements of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_qf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L204

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L604-L616


erase(self, [int] rr, bool ind1)

[INTERNAL] Erase a submatrix (leaving structural zeros in its place)

Erase elements of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_qf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L204

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L604-L616



erase(self, [int] rr, [int] cc, bool ind1)

[INTERNAL] Erase a submatrix (leaving structural zeros in its place)

Erase rows and/or columns of a matrix

Extra doc: https://github.com/casadi/casadi/wiki/L_qe

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L196

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L590-L602


eval_mx(*args)

[INTERNAL]

eval_mx(self, [MX] arg) -> [MX]

Evaluate the MX node with new symbolic dependencies.

Extra doc: https://github.com/casadi/casadi/wiki/L_rn

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L912

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L2347-L2353

static eye(*args)
eye(int n) -> MX
get(*args)

[INTERNAL]

get(self, bool ind1, int rr) -> MX
get(self, bool ind1, Sparsity sp) -> MX
get(self, bool ind1, Slice rr) -> MX
get(self, bool ind1, IM rr) -> MX
get(self, bool ind1, MX rr) -> MX
get(self, bool ind1, int rr, int cc) -> MX
get(self, bool ind1, int rr, Slice cc) -> MX
get(self, bool ind1, Slice rr, int cc) -> MX
get(self, bool ind1, Slice rr, Slice cc) -> MX
get(self, bool ind1, Slice rr, IM cc) -> MX
get(self, bool ind1, Slice rr, MX cc) -> MX
get(self, bool ind1, IM rr, Slice cc) -> MX
get(self, bool ind1, IM rr, IM cc) -> MX
get(self, bool ind1, MX rr, Slice cc) -> MX
get(self, bool ind1, MX rr, MX cc) -> MX

Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L473

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L218-L221


get(self, bool ind1, IM rr)
get(self, bool ind1, Slice rr, IM cc)
get(self, bool ind1, IM rr, Slice cc)
get(self, bool ind1, IM rr, IM cc)


get(self, bool ind1, int rr)

[INTERNAL] Get a submatrix, single argument

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L449

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L449-L451



get(self, bool ind1, Sparsity sp)

[INTERNAL] Get a submatrix, single argument

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L447

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L194-L200



get(self, bool ind1, Slice rr)

[INTERNAL] Get a submatrix, single argument

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L445

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L171-L174



get(self, bool ind1, MX rr)

[INTERNAL] Get a submatrix, single argument

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L448

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L202-L206



get(self, bool ind1, int rr, int cc)

[INTERNAL] Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L467

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L467-L470



get(self, bool ind1, int rr, Slice cc)

[INTERNAL] Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L462

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L462-L464



get(self, bool ind1, Slice rr, int cc)

[INTERNAL] Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L458

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L458-L460



get(self, bool ind1, Slice rr, Slice cc)

[INTERNAL] Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L456

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L141-L144



get(self, bool ind1, Slice rr, MX cc)

[INTERNAL] Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L472

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L208-L211



get(self, bool ind1, MX rr, Slice cc)

[INTERNAL] Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L471

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L213-L216



get(self, bool ind1, MX rr, MX cc)

[INTERNAL] Get a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L473

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L218-L221


static get_free(*args)
get_free(Function f) -> [MX]
static get_input(*args)
get_input(Function f) -> [MX]
static get_max_depth(*args)
get_max_depth() -> int
get_nz(*args)

[INTERNAL]

get_nz(self, bool ind1, int kk) -> MX
get_nz(self, bool ind1, Slice kk) -> MX
get_nz(self, bool ind1, IM kk) -> MX
get_nz(self, bool ind1, MX kk) -> MX
get_nz(self, bool ind1, Slice inner, MX outer) -> MX
get_nz(self, bool ind1, MX inner, Slice outer) -> MX
get_nz(self, bool ind1, MX inner, MX outer) -> MX

Get a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L501

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L427-L430


get_nz(self, bool ind1, IM kk)


get_nz(self, bool ind1, int kk)

[INTERNAL] Get a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L496

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L496-L498



get_nz(self, bool ind1, Slice kk)

[INTERNAL] Get a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L493

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L384-L387



get_nz(self, bool ind1, MX kk)

[INTERNAL] Get a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L495

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L422-L425



get_nz(self, bool ind1, Slice inner, MX outer)

[INTERNAL] Get a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L500

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L432-L435



get_nz(self, bool ind1, MX inner, Slice outer)

[INTERNAL] Get a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L499

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L437-L440



get_nz(self, bool ind1, MX inner, MX outer)

[INTERNAL] Get a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L501

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L427-L430


get_output(*args)

[INTERNAL]

get_output(self, int oind) -> MX

Get an output.

Extra doc: https://github.com/casadi/casadi/wiki/L_ql

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L246

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L849-L851

get_temp(*args)
get_temp(self) -> int
has_duplicates(*args)
has_duplicates(self) -> bool
has_output(*args)

[INTERNAL]

has_output(self) -> bool

Check if a multiple output node.

Extra doc: https://github.com/casadi/casadi/wiki/L_284

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L280

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L762-L764

static inf(*args)

[INTERNAL]

inf(int nrow, int ncol) -> MX
inf((int,int) rc) -> MX
inf(Sparsity sp) -> MX

create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_r2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L421

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L554-L556


inf(int nrow, int ncol)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_r2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L420

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L550-L552



inf((int,int) rc)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_r2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L421

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L554-L556



inf(Sparsity sp)

[INTERNAL] create a matrix with all inf

Extra doc: https://github.com/casadi/casadi/wiki/L_r2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L419

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L558-L560


info(*args)

[INTERNAL]

info(self) -> dict

Obtain information about node

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L387

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L802-L804

static interpn_linear(*args)
interpn_linear([MX] x, MX v, [MX] xq, dict opts) -> MX
is_binary(*args)

[INTERNAL]

is_binary(self) -> bool

Is binary operation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L378

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L790-L792

is_call(*args)

[INTERNAL]

is_call(self) -> bool

Check if evaluation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L269

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L750-L752

is_commutative(*args)

[INTERNAL]

is_commutative(self) -> bool

Check if commutative operation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L292

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L826-L831

is_constant(*args)

[INTERNAL]

is_constant(self) -> bool

Check if constant.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L266

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L746-L748

is_eye(*args)

[INTERNAL]

is_eye(self) -> bool

check if identity

Extra doc: https://github.com/casadi/casadi/wiki/L_qu

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L352

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L973-L975

is_minus_one(*args)

[INTERNAL]

is_minus_one(self) -> bool

check if zero (note that false negative answers are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_qx

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L367

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L989-L991

is_multiplication(*args)

[INTERNAL]

is_multiplication(self) -> bool

Check if multiplication.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L289

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L774-L776

is_norm(*args)

[INTERNAL]

is_norm(self) -> bool

Check if norm.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L295

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L778-L780

is_one(*args)

[INTERNAL]

is_one(self) -> bool

check if zero (note that false negative answers are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_qw

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L362

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L985-L987

is_op(*args)

[INTERNAL]

is_op(self, int op) -> bool

Is it a certain operation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L286

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L770-L772

is_output(*args)

[INTERNAL]

is_output(self) -> bool

Check if evaluation output.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L275

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L758-L760

is_regular(*args)

[INTERNAL]

is_regular(self) -> bool

Checks if expression does not contain NaN or Inf.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L375

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L997-L1003

is_symbolic(*args)

[INTERNAL]

is_symbolic(self) -> bool

Check if symbolic.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L263

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L742-L744

is_transpose(*args)

[INTERNAL]

is_transpose(self) -> bool

Is the expression a transpose?

Extra doc: https://github.com/casadi/casadi/wiki/L_qy

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L372

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L993-L995

is_unary(*args)

[INTERNAL]

is_unary(self) -> bool

Is unary operation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L381

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L794-L796

is_valid_input(*args)

[INTERNAL]

is_valid_input(self) -> bool

Check if matrix can be used to define function inputs.

Valid inputs for MXFunctions are combinations of Reshape, concatenations and SymbolicMX

Extra doc: https://github.com/casadi/casadi/wiki/L_qn

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L302

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L901-L903

is_zero(*args)

[INTERNAL]

is_zero(self) -> bool

check if zero (note that false negative answers are possible)

Extra doc: https://github.com/casadi/casadi/wiki/L_qv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L357

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L977-L983

join_primitives(*args)

[INTERNAL]

join_primitives(self, [DM] v) -> DM
join_primitives(self, [SX] v) -> SX
join_primitives(self, [MX] v) -> MX

Join an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L329

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L957-L963


join_primitives(self, [DM] v)

[INTERNAL] Join an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L329

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L957-L963



join_primitives(self, [SX] v)

[INTERNAL] Join an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L328

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L949-L955



join_primitives(self, [MX] v)

[INTERNAL] Join an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L327

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L941-L947


mapping(*args)

[INTERNAL]

mapping(self) -> IM

Get an IM representation of a GetNonzeros or SetNonzeros node.

Extra doc: https://github.com/casadi/casadi/wiki/L_ri

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L881

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L833-L835

monitor(*args)

[INTERNAL]

monitor(self, str comment) -> MX

Monitor an expression.

Returns itself, but with the side effect of printing the nonzeros along with a comment

Extra doc: https://github.com/casadi/casadi/wiki/L_rh

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L873

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L706-L708

n_dep(*args)

[INTERNAL]

n_dep(self) -> int

Get the number of dependencies of a binary SXElem.

Extra doc: https://github.com/casadi/casadi/wiki/L_qm

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L251

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L734-L736

n_out(*args)

[INTERNAL]

n_out(self) -> int

Number of outputs.

Extra doc: https://github.com/casadi/casadi/wiki/L_qk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L241

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L845-L847

n_primitives(*args)

[INTERNAL]

n_primitives(self) -> int

Get the number of primitives for MXFunction inputs/outputs.

Extra doc: https://github.com/casadi/casadi/wiki/L_qo

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L307

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L905-L907

name(*args)

[INTERNAL]

name(self) -> str

Get the name.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L254

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L738-L740

static nan(*args)

[INTERNAL]

nan(int nrow, int ncol) -> MX
nan((int,int) rc) -> MX
nan(Sparsity sp) -> MX

create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_r3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L430

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L566-L568


nan(int nrow, int ncol)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_r3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L429

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L562-L564



nan((int,int) rc)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_r3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L430

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L566-L568



nan(Sparsity sp)

[INTERNAL] create a matrix with all nan

Extra doc: https://github.com/casadi/casadi/wiki/L_r3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L428

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L570-L572


op(*args)

[INTERNAL]

op(self) -> int

Get operation type.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L384

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L798-L800

primitives(*args)

[INTERNAL]

primitives(self) -> [MX]

Get primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qp

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L312

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L909-L915

printme(*args)

[INTERNAL]

printme(self, MX b) -> MX
reset_input(*args)
reset_input(self)
serialize(*args)

[INTERNAL]

serialize(self, casadi::SerializingStream & s)

Serialize an object.

Extra doc: https://github.com/casadi/casadi/wiki/L_qz

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L392

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L806-L808

set(*args)
set(self, MX m, bool ind1, Sparsity sp)
set(self, MX m, bool ind1, Slice rr)
set(self, MX m, bool ind1, IM rr)
set(self, MX m, bool ind1, Slice rr, Slice cc)
set(self, MX m, bool ind1, Slice rr, IM cc)
set(self, MX m, bool ind1, IM rr, Slice cc)
set(self, MX m, bool ind1, IM rr, IM cc)

set(self, MX m, bool ind1, IM rr)
set(self, MX m, bool ind1, Slice rr, IM cc)
set(self, MX m, bool ind1, IM rr, Slice cc)
set(self, MX m, bool ind1, IM rr, IM cc)


set(self, MX m, bool ind1, Sparsity sp)

[INTERNAL] Set a submatrix, single argument

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L480

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L371-L382



set(self, MX m, bool ind1, Slice rr)

[INTERNAL] Set a submatrix, single argument

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L478

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L298-L301



set(self, MX m, bool ind1, Slice rr, Slice cc)

[INTERNAL] Set a submatrix, two arguments

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L485

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L223-L226


static set_max_depth(*args)
set_max_depth(int eq_depth)
set_nz(*args)

[INTERNAL]

set_nz(self, MX m, bool ind1, int kk)
set_nz(self, MX m, bool ind1, Slice kk)
set_nz(self, MX m, bool ind1, IM kk)
set_nz(self, MX m, bool ind1, MX kk)

Set a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L509

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L509-L509


set_nz(self, MX m, bool ind1, IM kk)


set_nz(self, MX m, bool ind1, int kk)

[INTERNAL] Set a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L509

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L509-L509



set_nz(self, MX m, bool ind1, Slice kk)

[INTERNAL] Set a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L506

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L442-L445



set_nz(self, MX m, bool ind1, MX kk)

[INTERNAL] Set a set of nonzeros

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L508

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L503-L505


set_temp(*args)
set_temp(self, int t)
sparsity(*args)

[INTERNAL]

sparsity(self) -> Sparsity

Get an owning reference to the sparsity pattern.

Extra doc: https://github.com/casadi/casadi/wiki/L_qd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L189

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L189-L189

split_primitives(*args)

[INTERNAL]

split_primitives(self, DM x) -> [DM]
split_primitives(self, SX x) -> [SX]
split_primitives(self, MX x) -> [MX]

Split up an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L320

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L933-L939


split_primitives(self, DM x)

[INTERNAL] Split up an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L320

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L933-L939



split_primitives(self, SX x)

[INTERNAL] Split up an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L319

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L925-L931



split_primitives(self, MX x)

[INTERNAL] Split up an expression along symbolic primitives.

Extra doc: https://github.com/casadi/casadi/wiki/L_qq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L318

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L917-L923


static test_cast(*args)
test_cast(casadi::SharedObjectInternal const * ptr) -> bool
to_DM(*args)
to_DM(self) -> DM
static type_name(*args)
type_name() -> str
static unary(*args)

[INTERNAL]

unary(int op, MX x) -> MX

Create nodes by their ID.

Extra doc: https://github.com/casadi/casadi/wiki/L_r1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L412

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L534-L536

which_function(*args)

[INTERNAL]

which_function(self) -> Function

Get function - only valid when is_call() is true.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L272

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L754-L756

which_output(*args)

[INTERNAL]

which_output(self) -> int

Get the index of evaluation output - only valid when is_output() is true.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.hpp#L283

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/mx.cpp#L766-L768

2.4. Sparsity

class Sparsity(*args)
.. py:method:: Sparsity.add_nz(*args)
module:

casadi.casadi

add_nz(self, int rr, int cc) -> int
amd(*args)
amd(self) -> [int]
append(*args)
append(self, Sparsity sp)
appendColumns(*args)
appendColumns(self, Sparsity sp)
static band(*args)
band(int n, int p) -> Sparsity
static banded(*args)
banded(int n, int p) -> Sparsity
btf(*args)
btf(self) -> (int , [int] OUTPUT, [int] OUTPUT, [int] OUTPUT, [int] OUTPUT, [int] OUTPUT, [int] OUTPUT)
bw_lower(*args)
bw_lower(self) -> int
bw_upper(*args)
bw_upper(self) -> int
colind(*args)
colind(self) -> [int]
colind(self, int cc) -> int
columns(*args)
columns(self) -> int
combine(*args)
combine(self, Sparsity y, bool f0x_is_zero, bool function0_is_zero) -> Sparsity
compress(*args)
compress(self) -> [int]
static compressed(*args)
compressed([int] v, bool order_rows) -> Sparsity
static dense(*args)
dense(int nrow, int ncol) -> Sparsity
dense((int,int) rc) -> Sparsity
density(*args)
density(self) -> float
static deserialize(*args)
deserialize(std::istream & stream) -> Sparsity
deserialize(casadi::DeserializingStream & s) -> Sparsity
deserialize(str s) -> Sparsity
dfs(*args)
dfs(self, int j, int top, [int] pinv) -> (int , [int] INOUT, [int] INOUT, [bool] INOUT)
static diag(*args)
diag(int nrow) -> Sparsity
diag((int,int) rc) -> Sparsity
diag(int nrow, int ncol) -> Sparsity
dim(*args)
dim(self, bool with_nz) -> str
enlarge(*args)
enlarge(self, int nrow, int ncol, [int] rr, [int] cc, bool ind1)
enlargeColumns(*args)
enlargeColumns(self, int ncol, [int] cc, bool ind1)
enlargeRows(*args)
enlargeRows(self, int nrow, [int] rr, bool ind1)
erase(*args)
erase(self, [int] rr, bool ind1) -> [int]
erase(self, [int] rr, [int] cc, bool ind1) -> [int]
etree(*args)
etree(self, bool ata) -> [int]
export_code(*args)
export_code(self, str lang, dict options)
find(*args)
find(self, bool ind1) -> [int]
static from_file(*args)
from_file(str filename, str format_hint) -> Sparsity
get_ccs(*args)
get_ccs(self) -> ([int] OUTPUT, [int] OUTPUT)
get_col(*args)
get_col(self) -> [int]
get_crs(*args)
get_crs(self) -> ([int] OUTPUT, [int] OUTPUT)
get_diag(*args)
get_diag(self) -> (Sparsity , [int] OUTPUT)
get_lower(*args)
get_lower(self) -> [int]
get_nz(*args)
get_nz(self) -> [int]
get_nz(self, int rr, int cc) -> int
get_nz(self, [int] rr, [int] cc) -> [int]
get_triplet(*args)
get_triplet(self) -> ([int] OUTPUT, [int] OUTPUT)
get_upper(*args)
get_upper(self) -> [int]
has_nz(*args)
has_nz(self, int rr, int cc) -> bool
hash(*args)
hash(self) -> std::size_t
info(*args)
info(self) -> dict
intersect(*args)
intersect(self, Sparsity y) -> Sparsity
is_column(*args)
is_column(self) -> bool
is_dense(*args)
is_dense(self) -> bool
is_diag(*args)
is_diag(self) -> bool
is_empty(*args)
is_empty(self, bool both) -> bool
is_equal(*args)
is_equal(self, Sparsity y) -> bool
is_equal(self, int nrow, int ncol, [int] colind, [int] row) -> bool
is_orthonormal(*args)
is_orthonormal(self, bool allow_empty) -> bool
is_orthonormal_columns(*args)
is_orthonormal_columns(self, bool allow_empty) -> bool
is_orthonormal_rows(*args)
is_orthonormal_rows(self, bool allow_empty) -> bool
is_permutation(*args)
is_permutation(self) -> bool
is_reshape(*args)
is_reshape(self, Sparsity y) -> bool
is_row(*args)
is_row(self) -> bool
is_scalar(*args)
is_scalar(self, bool scalar_and_dense) -> bool
is_selection(*args)
is_selection(self, bool allow_empty) -> bool
is_singular(*args)
is_singular(self) -> bool
is_square(*args)
is_square(self) -> bool
is_stacked(*args)
is_stacked(self, Sparsity y, int n) -> bool
is_subset(*args)
is_subset(self, Sparsity rhs) -> bool
is_symmetric(*args)
is_symmetric(self) -> bool
is_transpose(*args)
is_transpose(self, Sparsity y) -> bool
is_tril(*args)
is_tril(self, bool strictly) -> bool
is_triu(*args)
is_triu(self, bool strictly) -> bool
is_vector(*args)
is_vector(self) -> bool
static kkt(*args)
kkt(Sparsity H, Sparsity J, bool with_x_diag, bool with_lam_g_diag) -> Sparsity
largest_first(*args)
largest_first(self) -> [int]
ldl(*args)
ldl(self, bool amd) -> (Sparsity , [int] OUTPUT)
static lower(*args)
lower(int n) -> Sparsity
makeDense(*args)
makeDense(self) -> (Sparsity , [int] OUTPUT)
nnz(*args)
nnz(self) -> int
nnz_diag(*args)
nnz_diag(self) -> int
nnz_lower(*args)
nnz_lower(self, bool strictly) -> int
nnz_upper(*args)
nnz_upper(self, bool strictly) -> int
static nonzeros(*args)
nonzeros(int nrow, int ncol, [int] nz, bool ind1) -> Sparsity
numel(*args)
numel(self) -> int
pattern_inverse(*args)
pattern_inverse(self) -> Sparsity
static permutation(*args)
permutation([int] p, bool invert) -> Sparsity
permutation_vector(*args)
permutation_vector(self, bool invert) -> [int]
pmult(*args)
pmult(self, [int] p, bool permute_rows, bool permute_columns, bool invert_permutation) -> Sparsity
postfix_dim(*args)
postfix_dim(self) -> str
qr_sparse(*args)
qr_sparse(self, bool amd) -> (Sparsity OUTPUT, Sparsity OUTPUT, [int] OUTPUT, [int] OUTPUT)
removeDuplicates(*args)
removeDuplicates(self) -> [int]
repr_el(*args)
repr_el(self, int k) -> str
resize(*args)
resize(self, int nrow, int ncol)
row(*args)
row(self) -> [int]
row(self, int el) -> int
static rowcol(*args)
rowcol([int] row, [int] col, int nrow, int ncol) -> Sparsity
rows(*args)
rows(self) -> int
rowsSequential(*args)
rowsSequential(self, bool strictly) -> bool
static scalar(*args)
scalar(bool dense_scalar) -> Sparsity
scc(*args)
scc(self) -> (int , [int] OUTPUT, [int] OUTPUT)
serialize(*args)
serialize(self) -> str
serialize(self, casadi::SerializingStream & s)
size(*args)
size(self) -> (int,int)
size(self, int axis) -> int
size1(*args)
size1(self) -> int
size2(*args)
size2(self) -> int
sparsity_cast_mod(*args)
sparsity_cast_mod(self, Sparsity X, Sparsity Y) -> Sparsity
spy(*args)
spy(self)
spy_matlab(*args)
spy_matlab(self, str mfile)
star_coloring(*args)
star_coloring(self, int ordering, int cutoff) -> Sparsity
star_coloring2(*args)
star_coloring2(self, int ordering, int cutoff) -> Sparsity
sub(*args)
sub(self, [int] rr, Sparsity sp, bool ind1) -> (Sparsity , [int] OUTPUT)
sub(self, [int] rr, [int] cc, bool ind1) -> (Sparsity , [int] OUTPUT)
static test_cast(*args)
test_cast(casadi::SharedObjectInternal const * ptr) -> bool
to_file(*args)
to_file(self, str filename, str format_hint)
transpose(*args)
transpose(self, bool invert_mapping) -> (Sparsity , [int] OUTPUT)
static triplet(*args)
triplet(int nrow, int ncol, [int] row, [int] col) -> Sparsity
triplet(int nrow, int ncol, [int] row, [int] col, bool invert_mapping) -> (Sparsity , [int] OUTPUT)
static type_name(*args)
type_name() -> str
uni_coloring(*args)
uni_coloring(self, Sparsity AT, int cutoff) -> Sparsity
static unit(*args)
unit(int n, int el) -> Sparsity
unite(*args)
unite(self, Sparsity y) -> Sparsity
static upper(*args)
upper(int n) -> Sparsity

2.5. Function

class Function(*args)

[INTERNAL]

Function object.

A Function instance is a general multiple-input, multiple-output function where each input and output can be a sparse matrix.

For an introduction to this class, see the CasADi user guide. Function is a reference counted and

immutable class; copying a class instance is very cheap and its behavior (with some exceptions) is not affected by calling its member functions.

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_1uw

>List of available options

Id

Type

Description

Used in

ad_weight

OT_DOUBLE

Weighting factor for derivative calculation.When there is an option of either using forward or reverse mode directional derivatives, the condition ad_wei ght*nf<=(1- ad_weight)*na is used where nf and na are estimates of the number of forward/reverse mode directional derivatives needed. By default, ad_weight is calculated automatically, but this can be overridden by setting this option. In particular, 0 means forcing forward mode and 1 forcing reverse mode. Leave unset for (class specific) heuristics.

casadi::Function Internal

ad_weight_sp

OT_DOUBLE

Weighting factor for sparsity pattern calculation calc ulation.Override s default behavior. Set to 0 and 1 to force forward and reverse mode respectively. Cf. option “ad_weight”. When set to -1, sparsity is completely ignored and dense matrices are used.

casadi::Function Internal

always_inline

OT_BOOL

Force inlining.

casadi::Function Internal

cache

OT_DICT

Prepopulate the function cache. Default: empty

casadi::Function Internal

compiler

OT_STRING

Just-in-time compiler plugin to be used.

casadi::Function Internal

custom_jacobian

OT_FUNCTION

Override CasADi’s AD. Use together with ‘jac_penalty’: 0. Note: Highly experimental. Syntax may break often.

casadi::Function Internal

der_options

OT_DICT

Default options to be used to populate forward_options, reverse_options, and jacobian_options before those options are merged in.

casadi::Function Internal

derivative_of

OT_FUNCTION

The function is a derivative of another function. The type of derivative (directional derivative, Jacobian) is inferred from the function name.

casadi::Function Internal

dump

OT_BOOL

Dump function to file upon first evaluation. [false]

casadi::Function Internal

dump_dir

OT_STRING

Directory to dump inputs/outputs to. Make sure the directory exists [.]

casadi::Function Internal

dump_format

OT_STRING

Choose file format to dump matrices. See DM.from_file [mtx]

casadi::Function Internal

dump_in

OT_BOOL

Dump numerical values of inputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

dump_out

OT_BOOL

Dump numerical values of outputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

enable_fd

OT_BOOL

Enable derivative calculation by finite differencing. [default: false]]

casadi::Function Internal

enable_forward

OT_BOOL

Enable derivative calculation using generated functions for Jacobian-times- vector products - typically using forward mode AD - if available. [default: true]

casadi::Function Internal

enable_jacobian

OT_BOOL

Enable derivative calculation using generated functions for Jacobians of all differentiable outputs with respect to all differentiable inputs - if available. [default: true]

casadi::Function Internal

enable_reverse

OT_BOOL

Enable derivative calculation using generated functions for transposed Jacobian-times- vector products - typically using reverse mode AD - if available. [default: true]

casadi::Function Internal

error_on_fail

OT_BOOL

Throw exceptions when function evaluation fails (default true).

casadi::ProtoFun ction

external_transfo rm

OT_VECTORVECTOR

List of external _transform instruction arguments. Default: empty

casadi::Function Internal

fd_method

OT_STRING

Method for finite differencing [default ‘central’]

casadi::Function Internal

fd_options

OT_DICT

Options to be passed to the finite difference instance

casadi::Function Internal

forward_options

OT_DICT

Options to be passed to a forward mode constructor

casadi::Function Internal

gather_stats

OT_BOOL

Deprecated option (ignored): Statistics are now always collected.

casadi::Function Internal

input_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

inputs_check

OT_BOOL

Throw exceptions when the numerical values of the inputs don’t make sense

casadi::Function Internal

is_diff_in

OT_BOOLVECTOR

Indicate for each input if it should be differentiable.

casadi::Function Internal

is_diff_out

OT_BOOLVECTOR

Indicate for each output if it should be differentiable.

casadi::Function Internal

jac_penalty

OT_DOUBLE

When requested for a number of forward/reverse directions, it may be cheaper to compute first the full jacobian and then multiply with seeds, rather than obtain the requested directions in a straightforward manner. Casadi uses a heuristic to decide which is cheaper. A high value of ‘jac_penalty’ makes it less likely for the heurstic to chose the full Jacobian strategy. The special value -1 indicates never to use the full Jacobian strategy

casadi::Function Internal

jacobian_options

OT_DICT

Options to be passed to a Jacobian constructor

casadi::Function Internal

jit

OT_BOOL

Use just-in-time compiler to speed up the evaluation

casadi::Function Internal

jit_cleanup

OT_BOOL

Cleanup up the temporary source file that jit creates. Default: true

casadi::Function Internal

jit_name

OT_STRING

The file name used to write out code. The actual file names used depend on ‘jit_t emp_suffix’ and include extensions. Default: ‘jit_tmp’

casadi::Function Internal

jit_options

OT_DICT

Options to be passed to the jit compiler.

casadi::Function Internal

jit_serialize

OT_STRING

Specify behaviour when serializing a jitted function: SOURCE|link|embe d.

casadi::Function Internal

jit_temp_suffix

OT_BOOL

Use a temporary (seemingly random) filename suffix for generated code and libraries. This is desired for thread- safety. This behaviour may defeat caching compiler wrappers. Default: true

casadi::Function Internal

max_io

OT_INT

Acceptable number of inputs and outputs. Warn if exceeded.

casadi::Function Internal

max_num_dir

OT_INT

Specify the maximum number of directions for derivative functions. Overrules the builtin optimize d_num_dir.

casadi::Function Internal

never_inline

OT_BOOL

Forbid inlining.

casadi::Function Internal

output_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

post_expand

OT_BOOL

After construction, expand this Function . Default: False

casadi::Function Internal

post_expand_opti ons

OT_DICT

Options to be passed to post- construction expansion. Default: empty

casadi::Function Internal

print_in

OT_BOOL

Print numerical values of inputs [default: false]

casadi::Function Internal

print_out

OT_BOOL

Print numerical values of outputs [default: false]

casadi::Function Internal

print_time

OT_BOOL

print information about execution time. Implies record_time.

casadi::ProtoFun ction

record_time

OT_BOOL

record information about execution time, for retrieval with stats() .

casadi::ProtoFun ction

regularity_check

OT_BOOL

Throw exceptions when NaN or Inf appears during evaluation

casadi::ProtoFun ction

reverse_options

OT_DICT

Options to be passed to a reverse mode constructor

casadi::Function Internal

user_data

OT_VOIDPTR

A user-defined field that can be used to identify the function or pass additional information

casadi::Function Internal

verbose

OT_BOOL

Verbose evaluation for debugging

casadi::ProtoFun ction

C++ includes: function.hpp

assert_size_in(*args)

[INTERNAL]

assert_size_in(self, int i, int nrow, int ncol)

Assert that an input dimension is equal so some given value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1189

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1754-L1760

assert_size_out(*args)

[INTERNAL]

assert_size_out(self, int i, int nrow, int ncol)

Assert that an output dimension is equal so some given value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1192

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1762-L1767

assert_sparsity_out(*args)

[INTERNAL]

assert_sparsity_out(self, int i, Sparsity sp, int n, bool allow_all_zero_sparse)

Assert that an output sparsity is a multiple of some given sparsity.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1195

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1769-L1778

static bspline(*args)
bspline(str name, [[float]] knots, [float] coeffs, [int] degree, int m, dict opts) -> Function
buffer()

Create a FunctionBuffer object for evaluating with minimal overhead

cache(*args)

[INTERNAL]

cache(self) -> dict

Get all functions in the cache.

Extra doc: https://github.com/casadi/casadi/wiki/L_26i

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1212

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1804-L1811

call(*args)

[INTERNAL]

call(self, dict:DM arg, bool always_inline, bool never_inline) -> dict:DM
call(self, [DM] arg, bool always_inline, bool never_inline) -> [DM]
call(self, [SX] arg, bool always_inline, bool never_inline) -> [SX]
call(self, dict:SX arg, bool always_inline, bool never_inline) -> dict:SX
call(self, dict:MX arg, bool always_inline, bool never_inline) -> dict:MX
call(self, [MX] arg, bool always_inline, bool never_inline) -> [MX]

Evaluate the function symbolically or numerically.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L524

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1445-L1452


call(self, dict:DM arg, bool always_inline, bool never_inline)

[INTERNAL] Evaluate the function symbolically or numerically.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L520

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1427-L1434



call(self, [DM] arg, bool always_inline, bool never_inline)

[INTERNAL] Evaluate the function symbolically or numerically.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L514

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L356-L363



call(self, [SX] arg, bool always_inline, bool never_inline)

[INTERNAL] Evaluate the function symbolically or numerically.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L516

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L365-L372



call(self, dict:SX arg, bool always_inline, bool never_inline)

[INTERNAL] Evaluate the function symbolically or numerically.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L522

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1436-L1443



call(self, dict:MX arg, bool always_inline, bool never_inline)

[INTERNAL] Evaluate the function symbolically or numerically.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L524

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1445-L1452



call(self, [MX] arg, bool always_inline, bool never_inline)

[INTERNAL] Evaluate the function symbolically or numerically.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L518

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L374-L381


change_option(*args)

[INTERNAL]

change_option(self, str option_name, GenericType option_value)

Change option after object creation for debugging.

This is only possible for a selected number of options that do not change the numerical results of the computation, e.g. to enable a more

verbose

output or saving to file.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L455

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1147-L1157

static check_name(*args)
check_name(str name) -> bool
checkout(*args)

[INTERNAL]

checkout(self) -> int

Checkout a memory object.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1199

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1742-L1744

static conditional(*args)
conditional(str name, Function f, dict opts) -> Function
conditional(str name, [Function] f, Function f_def, dict opts) -> Function
convert_in(*args)

[INTERNAL]

convert_in(self, dict:DM arg) -> [DM]
convert_in(self, [DM] arg) -> dict:DM
convert_in(self, [SX] arg) -> dict:SX
convert_in(self, dict:SX arg) -> [SX]
convert_in(self, dict:MX arg) -> [MX]
convert_in(self, [MX] arg) -> dict:MX

Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L996

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1626-L1628


convert_in(self, dict:DM arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L988

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1594-L1596



convert_in(self, [DM] arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L987

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1590-L1592



convert_in(self, [SX] arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L991

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1606-L1608



convert_in(self, dict:SX arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L992

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1610-L1612



convert_in(self, dict:MX arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L996

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1626-L1628



convert_in(self, [MX] arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L995

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1622-L1624


convert_out(*args)

[INTERNAL]

convert_out(self, dict:DM arg) -> [DM]
convert_out(self, [DM] arg) -> dict:DM
convert_out(self, [SX] arg) -> dict:SX
convert_out(self, dict:SX arg) -> [SX]
convert_out(self, dict:MX arg) -> [MX]
convert_out(self, [MX] arg) -> dict:MX

Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L998

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1634-L1636


convert_out(self, dict:DM arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L990

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1602-L1604



convert_out(self, [DM] arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L989

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1598-L1600



convert_out(self, [SX] arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L993

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1614-L1616



convert_out(self, dict:SX arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L994

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1618-L1620



convert_out(self, dict:MX arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L998

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1634-L1636



convert_out(self, [MX] arg)

[INTERNAL] Convert from/to input/output lists/map.

Will raise an error when an unknown key is used or a list has incorrect size. Does not perform sparsity checking.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L997

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1630-L1632


default_in(*args)

[INTERNAL]

default_in(self, int ind) -> float

Get default input value.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vm

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L346

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1454-L1456

static deserialize(*args)
deserialize(std::istream & stream) -> Function
deserialize(casadi::DeserializingStream & s) -> Function
deserialize(str s) -> Function
expand(*args)

[INTERNAL]

expand(self) -> Function
expand(self, str name, dict opts) -> Function

Expand a function to SX.

Extra doc: https://github.com/casadi/casadi/wiki/L_1v5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L207

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L317-L333


expand(self)

[INTERNAL] Expand a function to SX.

Extra doc: https://github.com/casadi/casadi/wiki/L_1v5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L206

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L307-L315



expand(self, str name, dict opts)

[INTERNAL] Expand a function to SX.

Extra doc: https://github.com/casadi/casadi/wiki/L_1v5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L207

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L317-L333


export_code(*args)

[INTERNAL]

export_code(self, str lang, dict options) -> str
export_code(self, str lang, str fname, dict options)

Export function in specific language.

Only allowed for (a subset of) SX/MX Functions

Extra doc: https://github.com/casadi/casadi/wiki/L_1wz

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L902

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1275-L1279


export_code(self, str lang, dict options)

[INTERNAL] Export function in specific language.

Only allowed for (a subset of) SX/MX Functions

Extra doc: https://github.com/casadi/casadi/wiki/L_1wz

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L902

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1275-L1279



export_code(self, str lang, str fname, dict options)

[INTERNAL] Export function in specific language.

Only allowed for (a subset of) SX/MX Functions

Extra doc: https://github.com/casadi/casadi/wiki/L_1wz

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L875

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1236-L1240


factory(*args)

[INTERNAL]

factory(self, str name, [str] s_in, [str] s_out, dict:[str] aux, dict opts) -> Function
find_function(*args)

[INTERNAL]

find_function(self, str name, int max_depth) -> Function

Get a specific function embedded in the expression graphs.

1. Parameters:

name: Name of function needed

max_depth: Maximum depth - a negative number indicates no maximum

Extra doc: https://github.com/casadi/casadi/wiki/L_1y7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1242

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1857-L1874

find_functions(*args)

[INTERNAL]

find_functions(self, int max_depth) -> [Function]

Get all functions embedded in the expression graphs.

1. Parameters:

max_depth: Maximum depth - a negative number indicates no maximum

Extra doc: https://github.com/casadi/casadi/wiki/L_1y6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1234

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1839-L1855

static fix_name(*args)
fix_name(str name) -> str
fold(*args)

[INTERNAL]

fold(self, int N, dict opts) -> Function

Create a mapaccumulated version of this function.

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))

Mapaccum has the following benefits over writing an equivalent for- loop:

much faster at construction time

potentially much faster compilation times (for codegen)

offers a trade-off between memory and evaluation time

The base (settable through the options dictionary, default 10), is used to create a tower of function calls, containing unrolled for- loops of length maximum base.

This technique is much more scalable in terms of memory-usage, but slightly

slower at evaluation, than a plain for-loop. The effect is

similar to that

of a for-loop with a check-pointing instruction after

each chunk of iterations with size base.

Set base to -1 to unroll all the way; no gains in memory efficiency here.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L698

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L508-L514

forward(*args)

[INTERNAL]

forward(self, int nfwd) -> Function

Get a function that calculates nfwd forward derivatives.

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

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.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L800

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1110-L1116

free_mx(*args)

[INTERNAL]

free_mx(self) -> [MX]

Get all the free variables of the function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1019

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1650-L1656

free_sx(*args)

[INTERNAL]

free_sx(self) -> [SX]

Get all the free variables of the function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xa

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1014

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1642-L1648

generate(*args)

[INTERNAL]

generate(self, dict opts) -> str
generate(self, str fname, dict opts) -> str

Export / Generate C code for the function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L840

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1163-L1165


generate(self, dict opts)

[INTERNAL] Export / Generate C code for the function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L840

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1163-L1165



generate(self, str fname, dict opts)

[INTERNAL] Export / Generate C code for the function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wu

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L835

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1167-L1171


generate_dependencies(*args)

[INTERNAL]

generate_dependencies(self, str fname, dict opts) -> str

Export / Generate C code for the dependency function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ww

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L845

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1173-L1175

generate_in(*args)

[INTERNAL]

generate_in(self, str fname) -> [DM]
generate_in(self, str fname, [DM] arg)

Export an input file that can be passed to generate C code with a main.

See:

generate_out

See:

convert_in to convert between dict/map and vector

Extra doc: https://github.com/casadi/casadi/wiki/L_1wx

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L855

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1207-L1217


generate_in(self, str fname)

[INTERNAL] Export an input file that can be passed to generate C code with a main.

See:

generate_out

See:

convert_in to convert between dict/map and vector

Extra doc: https://github.com/casadi/casadi/wiki/L_1wx

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L855

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1207-L1217



generate_in(self, str fname, [DM] arg)

[INTERNAL] Export an input file that can be passed to generate C code with a main.

See:

generate_out

See:

convert_in to convert between dict/map and vector

Extra doc: https://github.com/casadi/casadi/wiki/L_1wx

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L854

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1177-L1190


generate_lifted(*args)

[INTERNAL]

generate_lifted(self) -> (Function OUTPUT, Function OUTPUT)

Extract the functions needed for the Lifted Newton method.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1024

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1670-L1676

generate_out(*args)

[INTERNAL]

generate_out(self, str fname) -> [DM]
generate_out(self, str fname, [DM] arg)

Export an output file that can be checked with generated C code

output.

See:

generate_in

See:

convert_out to convert between dict/map and vector

Extra doc: https://github.com/casadi/casadi/wiki/L_1wy

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L866

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1219-L1229


generate_out(self, str fname)

[INTERNAL] Export an output file that can be checked with generated C code

output.

See:

generate_in

See:

convert_out to convert between dict/map and vector

Extra doc: https://github.com/casadi/casadi/wiki/L_1wy

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L866

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1219-L1229



generate_out(self, str fname, [DM] arg)

[INTERNAL] Export an output file that can be checked with generated C code

output.

See:

generate_in

See:

convert_out to convert between dict/map and vector

Extra doc: https://github.com/casadi/casadi/wiki/L_1wy

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L865

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1192-L1205


get_free(*args)

[INTERNAL]

get_free(self) -> [str]

Get free variables as a string.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x9

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1009

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1159-L1161

get_function(*args)

[INTERNAL]

get_function(self) -> [str]
get_function(self, str name) -> Function

Get a dependency function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1y4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1222

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1822-L1828


get_function(self, str name)

[INTERNAL] Get a dependency function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1y4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1222

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1822-L1828



get_function(self)

[INTERNAL] Get a list of all functions.

Extra doc: https://github.com/casadi/casadi/wiki/L_1y3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1217

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1813-L1820


has_free(*args)

[INTERNAL]

has_free(self) -> bool

Does the function have free variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x8

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1004

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1666-L1668

has_function(*args)

[INTERNAL]

has_function(self, str fname) -> bool

Check if a particular dependency exists.

Extra doc: https://github.com/casadi/casadi/wiki/L_1y5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1227

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1830-L1837

has_option(*args)

[INTERNAL]

has_option(self, str option_name) -> bool

Does a particular option exist.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w1

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L447

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1138-L1145

has_spfwd(*args)

[INTERNAL]

has_spfwd(self) -> bool

Is the class able to propagate seeds through the algorithm?

Extra doc: https://github.com/casadi/casadi/wiki/L_1xl

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1078

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1658-L1660

has_sprev(*args)

[INTERNAL]

has_sprev(self) -> bool

Is the class able to propagate seeds through the algorithm?

Extra doc: https://github.com/casadi/casadi/wiki/L_1xl

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1079

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1662-L1664

hessian_old(*args)

[DEPRECATED] Replaced by Function::factory.

hessian_old(self, int iind, int oind) -> Function

Extra doc: https://github.com/casadi/casadi/wiki/L_1w5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L471

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L895-L903

static if_else(*args)
if_else(str name, Function f_true, Function f_false, dict opts) -> Function
index_in(*args)

[INTERNAL]

index_in(self, str name) -> int

Find the index for a string describing a particular entry of an input scheme.

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

Extra doc: https://github.com/casadi/casadi/wiki/L_1vk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L333

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L958-L964

index_out(*args)

[INTERNAL]

index_out(self, str name) -> int

Find the index for a string describing a particular entry of an output

scheme.

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

Extra doc: https://github.com/casadi/casadi/wiki/L_1vl

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L341

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L966-L972

info(*args)

[INTERNAL]

info(self) -> dict

Obtain information about function

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1245

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1903-L1905

instruction_MX(*args)

[INTERNAL]

instruction_MX(self, int k) -> MX

Get the MX node corresponding to an instruction (MXFunction)

Extra doc: https://github.com/casadi/casadi/wiki/L_1xj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1064

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1686-L1692

instruction_constant(*args)

[INTERNAL]

instruction_constant(self, int k) -> float

Get the floating point output argument of an instruction (SXFunction)

Extra doc: https://github.com/casadi/casadi/wiki/L_1xh

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1052

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1718-L1724

instruction_id(*args)

[INTERNAL]

instruction_id(self, int k) -> int

Identifier index of the instruction (SXFunction/MXFunction)

Extra doc: https://github.com/casadi/casadi/wiki/L_1xf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1040

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1702-L1708

instruction_input(*args)

[INTERNAL]

instruction_input(self, int k) -> [int]

Locations in the work vector for the inputs of the instruction.

(SXFunction/MXFunction)

Extra doc: https://github.com/casadi/casadi/wiki/L_1xg

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1047

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1710-L1716

instruction_output(*args)

[INTERNAL]

instruction_output(self, int k) -> [int]

Location in the work vector for the output of the instruction.

(SXFunction/MXFunction)

Extra doc: https://github.com/casadi/casadi/wiki/L_1xi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1059

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1726-L1732

instructions_sx(*args)

[INTERNAL]

instructions_sx(self) -> SX

Get the SX node corresponding to all instructions (SXFunction)

Note: input and output instructions have no SX representation. This method returns nan for those instructions.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1072

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1694-L1700

is_a(*args)

[INTERNAL]

is_a(self, str type, bool recursive) -> bool

Check if the function is of a particular type.

Optionally check if name matches one of the base classes (default true)

Extra doc: https://github.com/casadi/casadi/wiki/L_1xw

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1144

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1638-L1640

is_diff_in(*args)

[INTERNAL]

is_diff_in(self) -> [bool]
is_diff_in(self, int ind) -> bool

Get differentiability of inputs/output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L390

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1038-L1044


is_diff_in(self)

[INTERNAL] Get differentiability of inputs/output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L390

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1038-L1044



is_diff_in(self, int ind)

[INTERNAL] Get differentiability of inputs/output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L388

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1022-L1028


is_diff_out(*args)

[INTERNAL]

is_diff_out(self) -> [bool]
is_diff_out(self, int ind) -> bool

Get differentiability of inputs/output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L391

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1046-L1052


is_diff_out(self)

[INTERNAL] Get differentiability of inputs/output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L391

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1046-L1052



is_diff_out(self, int ind)

[INTERNAL] Get differentiability of inputs/output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L389

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1030-L1036


jac_sparsity(*args)

[INTERNAL]

jac_sparsity(self, bool compact) -> [Sparsity]
jac_sparsity(self, int oind, int iind, bool compact) -> Sparsity

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

Extra doc: https://github.com/casadi/casadi/wiki/L_1wt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L830

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L942-L948


jac_sparsity(self, bool compact)

[INTERNAL] Get, if necessary generate, the sparsity of all Jacobian blocks.

Extra doc: https://github.com/casadi/casadi/wiki/L_1ws

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L825

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L931-L940



jac_sparsity(self, int oind, int iind, bool compact)

[INTERNAL] Get, if necessary generate, the sparsity of a single Jacobian block.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wt

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L830

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L942-L948


jacobian(*args)

[INTERNAL]

jacobian(self) -> Function

Calculate all Jacobian blocks.

Generates a function that takes all non-differentiated inputs and outputs and calculates all Jacobian blocks. Inputs that are not needed

by the

routine are all-zero sparse matrices with the correct dimensions. Output blocks that are not calculated, e.g. if the corresponding input or output is marked non-differentiated are also all-zero sparse. The Jacobian blocks are sorted starting by all the blocks for the first output, then all the blocks for the second output and so on. E.g. f : (x, y) -> (r, s) results in the function jac_f : (x, y, out_r, out_s) -> (jac_r_x, jac_r_y, jac_s_x,

jac_s_y)

This function is cached.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L508

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L915-L921

jacobian_old(*args)

[DEPRECATED] Replaced by Function::factory.

jacobian_old(self, int iind, int oind) -> Function

Extra doc: https://github.com/casadi/casadi/wiki/L_1w4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L466

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L887-L893

static jit(*args)

[INTERNAL]

jit(str name, str body, [str] name_in, [str] name_out, dict opts) -> Function
jit(str name, str body, [str] name_in, [str] name_out, [Sparsity] sparsity_in, [Sparsity] sparsity_out, dict opts) -> Function

Create a just-in-time compiled function from a C language string.

The names and sparsity patterns of all the inputs and outputs must be

provided. If sparsities are not provided, all inputs and outputs are

assumed to be scalar. Only specify the function body, assuming that input and output nonzeros are stored in arrays with the specified naming convension. The data type used is ‘casadi_real’, which is typically equal to ‘double or another data type with the same API as ‘double.

Inputs may be null pointers. This means that the all entries are zero.

Outputs may be null points. This means that the corresponding result can be

ignored.

If an error occurs in the evaluation, issue “return 1;”;

The final generated function will have a structure similar to:

casadi_int fname(const casadi_real** arg, casadi_real** res, casadi_int* iw, casadi_real* w, void* mem) { const casadi_real *x1, *x2; casadi_real *r1, *r2; x1 = *arg++; x2 = *arg++; r1 = *res++; r2 =

*res++;

<FUNCTION_BODY> return 0; }

Extra doc: https://github.com/casadi/casadi/wiki/L_1v3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L189

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L293-L305


jit(str name, str body, [str] name_in, [str] name_out, dict opts)

[INTERNAL] Create a just-in-time compiled function from a C language string.

The names and sparsity patterns of all the inputs and outputs must be

provided. If sparsities are not provided, all inputs and outputs are

assumed to be scalar. Only specify the function body, assuming that input and output nonzeros are stored in arrays with the specified naming convension. The data type used is ‘casadi_real’, which is typically equal to ‘double or another data type with the same API as ‘double.

Inputs may be null pointers. This means that the all entries are zero.

Outputs may be null points. This means that the corresponding result can be

ignored.

If an error occurs in the evaluation, issue “return 1;”;

The final generated function will have a structure similar to:

casadi_int fname(const casadi_real** arg, casadi_real** res, casadi_int* iw, casadi_real* w, void* mem) { const casadi_real *x1, *x2; casadi_real *r1, *r2; x1 = *arg++; x2 = *arg++; r1 = *res++; r2 =

*res++;

<FUNCTION_BODY> return 0; }

Extra doc: https://github.com/casadi/casadi/wiki/L_1v3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L185

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L284-L291



jit(str name, str body, [str] name_in, [str] name_out, [Sparsity] sparsity_in, [Sparsity] sparsity_out, dict opts)

[INTERNAL] Create a just-in-time compiled function from a C language string.

The names and sparsity patterns of all the inputs and outputs must be

provided. If sparsities are not provided, all inputs and outputs are

assumed to be scalar. Only specify the function body, assuming that input and output nonzeros are stored in arrays with the specified naming convension. The data type used is ‘casadi_real’, which is typically equal to ‘double or another data type with the same API as ‘double.

Inputs may be null pointers. This means that the all entries are zero.

Outputs may be null points. This means that the corresponding result can be

ignored.

If an error occurs in the evaluation, issue “return 1;”;

The final generated function will have a structure similar to:

casadi_int fname(const casadi_real** arg, casadi_real** res, casadi_int* iw, casadi_real* w, void* mem) { const casadi_real *x1, *x2; casadi_real *r1, *r2; x1 = *arg++; x2 = *arg++; r1 = *res++; r2 =

*res++;

<FUNCTION_BODY> return 0; }

Extra doc: https://github.com/casadi/casadi/wiki/L_1v3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L189

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L293-L305


static load(*args)
load(str filename) -> Function
map(*args)

[INTERNAL]

map(self, int n, str parallelization) -> Function
map(self, int n, [bool] reduce_in, [bool] reduce_out, dict opts) -> Function
map(self, int n, str parallelization, int max_num_threads) -> Function
map(self, str name, str parallelization, int n, [str] reduce_in, [str] reduce_out, dict opts) -> Function
map(self, str name, str parallelization, int n, [int] reduce_in, [int] reduce_out, dict opts) -> Function

Map with reduction.

A subset of the inputs are non-repeated and a subset of the outputs summed up.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L745

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L636-L642


map(self, int n, [bool] reduce_in, [bool] reduce_out, dict opts)

[INTERNAL] Map with reduction.

A subset of the inputs are non-repeated and a subset of the outputs summed up.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L745

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L636-L642



map(self, str name, str parallelization, int n, [str] reduce_in, [str] reduce_out, dict opts)

[INTERNAL] Map with reduction.

A subset of the inputs are non-repeated and a subset of the outputs summed up.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L741

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L667-L674



map(self, str name, str parallelization, int n, [int] reduce_in, [int] reduce_out, dict opts)

[INTERNAL] Map with reduction.

A subset of the inputs are non-repeated and a subset of the outputs summed up.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L737

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L644-L665



map(self, int n, str parallelization, int max_num_threads)

[INTERNAL]



map(self, int n, str parallelization)

[INTERNAL] Create a mapped version of this function.

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))

1. Parameters:

parallelization: Type of parallelization used: unroll|serial|openmp

Extra doc: https://github.com/casadi/casadi/wiki/L_1wj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L726

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L708-L743


mapaccum(*args)

[INTERNAL]

mapaccum(self, int N, dict opts) -> Function
mapaccum(self, str name, int N, dict opts) -> Function
mapaccum(self, str name, int N, int n_accum, dict opts) -> Function
mapaccum(self, str name, int n, [str] accum_in, [str] accum_out, dict opts) -> Function
mapaccum(self, str name, int n, [int] accum_in, [int] accum_out, dict opts) -> Function

Create a mapaccumulated version of this function.

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))

Mapaccum has the following benefits over writing an equivalent for- loop:

much faster at construction time

potentially much faster compilation times (for codegen)

offers a trade-off between memory and evaluation time

The base (settable through the options dictionary, default 10), is used to create a tower of function calls, containing unrolled for- loops of length maximum base.

This technique is much more scalable in terms of memory-usage, but slightly

slower at evaluation, than a plain for-loop. The effect is

similar to that

of a for-loop with a check-pointing instruction after

each chunk of iterations with size base.

Set base to -1 to unroll all the way; no gains in memory efficiency here.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L697

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L515-L517


mapaccum(self, int N, dict opts)

[INTERNAL] Create a mapaccumulated version of this function.

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))

Mapaccum has the following benefits over writing an equivalent for- loop:

much faster at construction time

potentially much faster compilation times (for codegen)

offers a trade-off between memory and evaluation time

The base (settable through the options dictionary, default 10), is used to create a tower of function calls, containing unrolled for- loops of length maximum base.

This technique is much more scalable in terms of memory-usage, but slightly

slower at evaluation, than a plain for-loop. The effect is

similar to that

of a for-loop with a check-pointing instruction after

each chunk of iterations with size base.

Set base to -1 to unroll all the way; no gains in memory efficiency here.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L697

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L515-L517



mapaccum(self, str name, int N, dict opts)

[INTERNAL] Create a mapaccumulated version of this function.

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))

Mapaccum has the following benefits over writing an equivalent for- loop:

much faster at construction time

potentially much faster compilation times (for codegen)

offers a trade-off between memory and evaluation time

The base (settable through the options dictionary, default 10), is used to create a tower of function calls, containing unrolled for- loops of length maximum base.

This technique is much more scalable in terms of memory-usage, but slightly

slower at evaluation, than a plain for-loop. The effect is

similar to that

of a for-loop with a check-pointing instruction after

each chunk of iterations with size base.

Set base to -1 to unroll all the way; no gains in memory efficiency here.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L686

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L518-L520



mapaccum(self, str name, int N, int n_accum, dict opts)

[INTERNAL] Create a mapaccumulated version of this function.

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))

Mapaccum has the following benefits over writing an equivalent for- loop:

much faster at construction time

potentially much faster compilation times (for codegen)

offers a trade-off between memory and evaluation time

The base (settable through the options dictionary, default 10), is used to create a tower of function calls, containing unrolled for- loops of length maximum base.

This technique is much more scalable in terms of memory-usage, but slightly

slower at evaluation, than a plain for-loop. The effect is

similar to that

of a for-loop with a check-pointing instruction after

each chunk of iterations with size base.

Set base to -1 to unroll all the way; no gains in memory efficiency here.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L687

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L521-L549



mapaccum(self, str name, int n, [str] accum_in, [str] accum_out, dict opts)

[INTERNAL] Create a mapaccumulated version of this function.

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))

Mapaccum has the following benefits over writing an equivalent for- loop:

much faster at construction time

potentially much faster compilation times (for codegen)

offers a trade-off between memory and evaluation time

The base (settable through the options dictionary, default 10), is used to create a tower of function calls, containing unrolled for- loops of length maximum base.

This technique is much more scalable in terms of memory-usage, but slightly

slower at evaluation, than a plain for-loop. The effect is

similar to that

of a for-loop with a check-pointing instruction after

each chunk of iterations with size base.

Set base to -1 to unroll all the way; no gains in memory efficiency here.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L693

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L626-L634



mapaccum(self, str name, int n, [int] accum_in, [int] accum_out, dict opts)

[INTERNAL] Create a mapaccumulated version of this function.

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))

Mapaccum has the following benefits over writing an equivalent for- loop:

much faster at construction time

potentially much faster compilation times (for codegen)

offers a trade-off between memory and evaluation time

The base (settable through the options dictionary, default 10), is used to create a tower of function calls, containing unrolled for- loops of length maximum base.

This technique is much more scalable in terms of memory-usage, but slightly

slower at evaluation, than a plain for-loop. The effect is

similar to that

of a for-loop with a check-pointing instruction after

each chunk of iterations with size base.

Set base to -1 to unroll all the way; no gains in memory efficiency here.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L689

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L596-L624


mapsum(*args)

[INTERNAL]

mapsum(self, [MX] x, str parallelization) -> [MX]

Evaluate symbolically in parallel and sum (matrix graph)

1. Parameters:

parallelization: Type of parallelization used: unroll|serial|openmp

Extra doc: https://github.com/casadi/casadi/wiki/L_1wh

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L642

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L755-L762

max_in(*args)

[INTERNAL]

max_in(self, int ind) -> float

Get largest input value.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vn

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L351

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1458-L1460

min_in(*args)

[INTERNAL]

min_in(self, int ind) -> float

Get smallest input value.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vo

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L356

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1462-L1464

mx_in(*args)

[INTERNAL]

mx_in(self) -> [MX]
mx_in(self, int ind) -> MX
mx_in(self, str iname) -> MX

Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L949

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1566-L1568


mx_in(self)

[INTERNAL] Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L949

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1566-L1568



mx_in(self, int ind)

[INTERNAL] Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L945

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1558-L1560



mx_in(self, str iname)

[INTERNAL] Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L946

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L946-L948


mx_out(*args)

[INTERNAL]

mx_out(self) -> [MX]
mx_out(self, int ind) -> MX
mx_out(self, str oname) -> MX

Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L967

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1570-L1572


mx_out(self)

[INTERNAL] Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L967

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1570-L1572



mx_out(self, int ind)

[INTERNAL] Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L963

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1562-L1564



mx_out(self, str oname)

[INTERNAL] Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L964

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L964-L966


n_in(*args)

[INTERNAL]

n_in(self) -> int

Get the number of function inputs.

Extra doc: https://github.com/casadi/casadi/wiki/L_1v8

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L228

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L818-L820

n_instructions(*args)

[INTERNAL]

n_instructions(self) -> int

Number of instruction in the algorithm (SXFunction/MXFunction)

Extra doc: https://github.com/casadi/casadi/wiki/L_1xe

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1035

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1678-L1684

n_nodes(*args)

[INTERNAL]

n_nodes(self) -> int

Number of nodes in the algorithm.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1030

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1734-L1740

n_out(*args)

[INTERNAL]

n_out(self) -> int

Get the number of function outputs.

Extra doc: https://github.com/casadi/casadi/wiki/L_1v9

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L233

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L822-L824

name(*args)

[INTERNAL]

name(self) -> str

Name of the function.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1137

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1281-L1288

name_in(*args)

[INTERNAL]

name_in(self) -> [str]
name_in(self, int ind) -> str

Get input scheme name by index.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L320

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L974-L980


name_in(self, int ind)

[INTERNAL] Get input scheme name by index.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L320

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L974-L980



name_in(self)

[INTERNAL] Get input scheme.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vg

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L310

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L950-L952


name_out(*args)

[INTERNAL]

name_out(self) -> [str]
name_out(self, int ind) -> str

Get output scheme name by index.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L325

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L982-L988


name_out(self, int ind)

[INTERNAL] Get output scheme name by index.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L325

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L982-L988



name_out(self)

[INTERNAL] Get output scheme.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vh

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L315

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L954-L956


nnz_in(*args)

[INTERNAL]

nnz_in(self) -> int
nnz_in(self, int ind) -> int
nnz_in(self, str iname) -> int

Get number of input nonzeros.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L271

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L271-L271


nnz_in(self)

[INTERNAL] Get number of input nonzeros.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L269

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L850-L852



nnz_in(self, int ind)

[INTERNAL] Get number of input nonzeros.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L270

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L866-L868



nnz_in(self, str iname)

[INTERNAL] Get number of input nonzeros.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L271

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L271-L271


nnz_out(*args)

[INTERNAL]

nnz_out(self) -> int
nnz_out(self, int ind) -> int
nnz_out(self, str oname) -> int

Get number of output nonzeros.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L282

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L282-L282


nnz_out(self)

[INTERNAL] Get number of output nonzeros.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L280

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L854-L856



nnz_out(self, int ind)

[INTERNAL] Get number of output nonzeros.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L281

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L870-L872



nnz_out(self, str oname)

[INTERNAL] Get number of output nonzeros.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vd

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L282

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L282-L282


nominal_in(*args)

[INTERNAL]

nominal_in(self, int ind) -> [float]

Get nominal input value.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vp

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L361

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1466-L1468

nominal_out(*args)

[INTERNAL]

nominal_out(self, int ind) -> [float]

Get nominal output value.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vq

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L366

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1470-L1472

numel_in(*args)

[INTERNAL]

numel_in(self) -> int
numel_in(self, int ind) -> int
numel_in(self, str iname) -> int

Get number of input elements.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1ve

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L293

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L293-L293


numel_in(self)

[INTERNAL] Get number of input elements.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1ve

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L291

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L858-L860



numel_in(self, int ind)

[INTERNAL] Get number of input elements.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1ve

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L292

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L874-L876



numel_in(self, str iname)

[INTERNAL] Get number of input elements.

For a particular input or for all of the inputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1ve

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L293

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L293-L293


numel_out(*args)

[INTERNAL]

numel_out(self) -> int
numel_out(self, int ind) -> int
numel_out(self, str oname) -> int

Get number of output elements.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L304

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L304-L304


numel_out(self)

[INTERNAL] Get number of output elements.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L302

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L862-L864



numel_out(self, int ind)

[INTERNAL] Get number of output elements.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L303

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L878-L880



numel_out(self, str oname)

[INTERNAL] Get number of output elements.

For a particular output or for all of the outputs

Extra doc: https://github.com/casadi/casadi/wiki/L_1vf

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L304

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L304-L304


nz_from_in(*args)

[INTERNAL]

nz_from_in(self, [DM] arg) -> [float]

Convert from/to flat vector of input/output nonzeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L974

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1574-L1576

nz_from_out(*args)

[INTERNAL]

nz_from_out(self, [DM] arg) -> [float]

Convert from/to flat vector of input/output nonzeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L975

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1578-L1580

nz_to_in(*args)

[INTERNAL]

nz_to_in(self, [float] arg) -> [DM]

Convert from/to flat vector of input/output nonzeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L976

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1582-L1584

nz_to_out(*args)

[INTERNAL]

nz_to_out(self, [float] arg) -> [DM]

Convert from/to flat vector of input/output nonzeros.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L977

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1586-L1588

oracle(*args)

[INTERNAL]

oracle(self) -> Function

Get oracle.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vu

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L407

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1877-L1883

print_dimensions(*args)

[INTERNAL]

print_dimensions(self)

Print dimensions of inputs and outputs.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vy

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L432

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1126-L1128

print_option(*args)

[INTERNAL]

print_option(self, str name)

Print all information there is to know about a certain option.

Extra doc: https://github.com/casadi/casadi/wiki/L_1w0

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L442

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1134-L1136

print_options(*args)

[INTERNAL]

print_options(self)

Print options to a stream.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vz

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L437

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1130-L1132

release(*args)

[INTERNAL]

release(self, int mem)

Release a memory object.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1202

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1746-L1748

reverse(*args)

[INTERNAL]

reverse(self, int nadj) -> Function

Get a function that calculates nadj adjoint derivatives.

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

 <tt>(n_in = n_in(), n_out = n_out())</tt>

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.

Extra doc: https://github.com/casadi/casadi/wiki/L_1wr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L820

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1118-L1124

save(*args)

[INTERNAL]

save(self, str fname, dict opts)

Save Function to a file.

See:

load

Extra doc: https://github.com/casadi/casadi/wiki/L_240

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L900

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1243-L1246

serialize(*args)

[INTERNAL]

serialize(self, dict opts) -> str

Serialize.

Extra doc: https://github.com/casadi/casadi/wiki/L_1x2

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L893

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1248-L1252

size1_in(*args)

[INTERNAL]

size1_in(self, int ind) -> int
size1_in(self, str iname) -> int

Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L240

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L240-L240


size1_in(self, int ind)

[INTERNAL] Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L239

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L826-L828



size1_in(self, str iname)

[INTERNAL] Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L240

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L240-L240


size1_out(*args)

[INTERNAL]

size1_out(self, int ind) -> int
size1_out(self, str oname) -> int

Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L254

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L254-L254


size1_out(self, int ind)

[INTERNAL] Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L253

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L834-L836



size1_out(self, str oname)

[INTERNAL] Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L254

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L254-L254


size2_in(*args)

[INTERNAL]

size2_in(self, int ind) -> int
size2_in(self, str iname) -> int

Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L242

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L242-L242


size2_in(self, int ind)

[INTERNAL] Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L241

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L830-L832



size2_in(self, str iname)

[INTERNAL] Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L242

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L242-L242


size2_out(*args)

[INTERNAL]

size2_out(self, int ind) -> int
size2_out(self, str oname) -> int

Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L256

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L256-L256


size2_out(self, int ind)

[INTERNAL] Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L255

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L838-L840



size2_out(self, str oname)

[INTERNAL] Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L256

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L256-L256


size_in(*args)

[INTERNAL]

size_in(self, int ind) -> (int,int)
size_in(self, str iname) -> (int,int)

Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L244

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L244-L246


size_in(self, int ind)

[INTERNAL] Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L243

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L842-L844



size_in(self, str iname)

[INTERNAL] Get input dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1va

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L244

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L244-L246


size_out(*args)

[INTERNAL]

size_out(self, int ind) -> (int,int)
size_out(self, str oname) -> (int,int)

Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L258

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L258-L260


size_out(self, int ind)

[INTERNAL] Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L257

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L846-L848



size_out(self, str oname)

[INTERNAL] Get output dimension.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vb

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L258

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L258-L260


slice(*args)

[INTERNAL]

slice(self, str name, [int] order_in, [int] order_out, dict opts) -> Function

returns a new function with a selection of inputs/outputs of the

original

Extra doc: https://github.com/casadi/casadi/wiki/L_1wl

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L754

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L746-L753

sparsity_in(*args)

[INTERNAL]

sparsity_in(self, int ind) -> Sparsity
sparsity_in(self, str iname) -> Sparsity

Get sparsity of a given input.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L373

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L998-L1004


sparsity_in(self, int ind)

[INTERNAL] Get sparsity of a given input.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L372

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L990-L996



sparsity_in(self, str iname)

[INTERNAL] Get sparsity of a given input.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vr

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L373

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L998-L1004


sparsity_jac(*args)

[DEPRECATED] Get, if necessary generate, the sparsity of a Jacobian

sparsity_jac(self, str iind, int oind, bool compact, bool symmetric) -> Sparsity
sparsity_jac(self, int iind, int oind, bool compact, bool symmetric) -> Sparsity
sparsity_jac(self, int iind, str oind, bool compact, bool symmetric) -> Sparsity
sparsity_jac(self, str iind, str oind, bool compact, bool symmetric) -> Sparsity

block

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L485

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L485-L488


sparsity_jac(self, str iind, int oind, bool compact, bool symmetric)

[DEPRECATED] Get, if necessary generate, the sparsity of a Jacobian block

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L477

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L477-L480



sparsity_jac(self, int iind, int oind, bool compact, bool symmetric)

[DEPRECATED] Get, if necessary generate, the sparsity of a Jacobian block

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L475

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L906-L912



sparsity_jac(self, int iind, str oind, bool compact, bool symmetric)

[DEPRECATED] Get, if necessary generate, the sparsity of a Jacobian block

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L481

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L481-L484



sparsity_jac(self, str iind, str oind, bool compact, bool symmetric)

[DEPRECATED] Get, if necessary generate, the sparsity of a Jacobian block

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L485

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L485-L488


sparsity_out(*args)

[INTERNAL]

sparsity_out(self, int ind) -> Sparsity
sparsity_out(self, str iname) -> Sparsity

Get sparsity of a given output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vs

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L381

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1014-L1020


sparsity_out(self, int ind)

[INTERNAL] Get sparsity of a given output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vs

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L380

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1006-L1012



sparsity_out(self, str iname)

[INTERNAL] Get sparsity of a given output.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vs

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L381

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1014-L1020


stats(*args)

[INTERNAL]

stats(self, int mem) -> dict

Get all statistics obtained at the end of the last evaluate call.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L932

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L927-L929

sx_in(*args)

[INTERNAL]

sx_in(self) -> [SX]
sx_in(self, int iind) -> SX
sx_in(self, str iname) -> SX

Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L944

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1542-L1548


sx_in(self)

[INTERNAL] Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L944

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1542-L1548



sx_in(self, int iind)

[INTERNAL] Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L940

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1526-L1532



sx_in(self, str iname)

[INTERNAL] Get symbolic primitives equivalent to the input expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x4

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L941

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L941-L943


sx_out(*args)

[INTERNAL]

sx_out(self) -> [SX]
sx_out(self, int oind) -> SX
sx_out(self, str oname) -> SX

Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L962

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1550-L1556


sx_out(self)

[INTERNAL] Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L962

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1550-L1556



sx_out(self, int oind)

[INTERNAL] Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L958

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1534-L1540



sx_out(self, str oname)

[INTERNAL] Get symbolic primitives equivalent to the output expressions.

There is no guarantee that subsequent calls return unique answers

Extra doc: https://github.com/casadi/casadi/wiki/L_1x5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L959

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L959-L961


sz_arg(*args)

[INTERNAL]

sz_arg(self) -> size_t

Get required length of arg field.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xm

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1085

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1058-L1058

sz_iw(*args)

[INTERNAL]

sz_iw(self) -> size_t

Get required length of iw field.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xo

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1095

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1062-L1062

sz_res(*args)

[INTERNAL]

sz_res(self) -> size_t

Get required length of res field.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xn

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1090

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1060-L1060

sz_w(*args)

[INTERNAL]

sz_w(self) -> size_t

Get required length of w field.

Extra doc: https://github.com/casadi/casadi/wiki/L_1xp

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L1100

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1064-L1064

static type_name(*args)
type_name() -> str
uses_output(*args)

[INTERNAL]

uses_output(self) -> bool

Do the derivative functions need nondifferentiated outputs?

Extra doc: https://github.com/casadi/casadi/wiki/L_1w3

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L460

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L882-L884

which_depends(*args)

[INTERNAL]

which_depends(self, str s_in, [str] s_out, int order, bool tr) -> [bool]

Which variables enter with some order.

1. Parameters:

order: Only 1 (linear) and 2 (nonlinear) allowed

tr: Flip the relationship. Return which expressions contain the variables

Extra doc: https://github.com/casadi/casadi/wiki/L_1vx

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L425

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1795-L1802

wrap(*args)

[INTERNAL]

wrap(self) -> Function

Wrap in an Function instance consisting of only one MX call.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vv

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L412

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1885-L1887

wrap_as_needed(*args)

[INTERNAL]

wrap_as_needed(self, dict opts) -> Function

Wrap in a Function with options.

Extra doc: https://github.com/casadi/casadi/wiki/L_1vw

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/function.hpp#L417

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/function.cpp#L1889-L1891

3. Solvers

3.1. NLP

nlpsol(*args)

[INTERNAL]

nlpsol(str name, str solver, Importer compiler, dict opts) -> Function
nlpsol(str name, str solver, NlpBuilder nl, dict opts) -> Function
nlpsol(str name, str solver, dict:SX nlp, dict opts) -> Function
nlpsol(str name, str solver, dict:MX nlp, dict opts) -> Function
nlpsol(str name, str solver, str fname, dict opts) -> Function
nlpsol(str name, str solver, Function nlp, dict opts) -> Function

nlpsol(str name, str solver, dict:SX nlp, dict opts)

[INTERNAL]

Create an NLP solver Creates a solver for the following parametric

nonlinear program (NLP):

min          F(x, p)
x

subject to
LBX <=   x    <= UBX
LBG <= G(x, p) <= UBG
p  == P

nx: number of decision variables
ng: number of constraints
np: number of parameters

General information

>List of available options

Id

Type

Description

Used in

ad_weight

OT_DOUBLE

Weighting factor for derivative calculation.When there is an option of either using forward or reverse mode directional derivatives, the condition ad_wei ght*nf<=(1- ad_weight)*na is used where nf and na are estimates of the number of forward/reverse mode directional derivatives needed. By default, ad_weight is calculated automatically, but this can be overridden by setting this option. In particular, 0 means forcing forward mode and 1 forcing reverse mode. Leave unset for (class specific) heuristics.

casadi::Function Internal

ad_weight_sp

OT_DOUBLE

Weighting factor for sparsity pattern calculation calc ulation.Override s default behavior. Set to 0 and 1 to force forward and reverse mode respectively. Cf. option “ad_weight”. When set to -1, sparsity is completely ignored and dense matrices are used.

casadi::Function Internal

always_inline

OT_BOOL

Force inlining.

casadi::Function Internal

bound_consistenc y

OT_BOOL

Ensure that primal-dual solution is consistent with the bounds

casadi::Nlpsol

cache

OT_DICT

Prepopulate the function cache. Default: empty

casadi::Function Internal

calc_f

OT_BOOL

Calculate ‘f’ in the Nlpsol base class

casadi::Nlpsol

calc_g

OT_BOOL

Calculate ‘g’ in the Nlpsol base class

casadi::Nlpsol

calc_lam_p

OT_BOOL

Calculate ‘lam_p’ in the Nlpsol base class

casadi::Nlpsol

calc_lam_x

OT_BOOL

Calculate ‘lam_x’ in the Nlpsol base class

casadi::Nlpsol

calc_multipliers

OT_BOOL

Calculate Lagrange multipliers in the Nlpsol base class

casadi::Nlpsol

common_options

OT_DICT

Options for auto-generated functions

casadi::OracleFu nction

compiler

OT_STRING

Just-in-time compiler plugin to be used.

casadi::Function Internal

custom_jacobian

OT_FUNCTION

Override CasADi’s AD. Use together with ‘jac_penalty’: 0. Note: Highly experimental. Syntax may break often.

casadi::Function Internal

der_options

OT_DICT

Default options to be used to populate forward_options, reverse_options, and jacobian_options before those options are merged in.

casadi::Function Internal

derivative_of

OT_FUNCTION

The function is a derivative of another function. The type of derivative (directional derivative, Jacobian) is inferred from the function name.

casadi::Function Internal

detect_simple_bo unds

OT_BOOL

Automatically detect simple bounds (lbx/ubx) (default false). This is hopefully beneficial to speed and robustness but may also have adverse affects: 1) Subtleties in heuristics and stopping criteria may change the solution, 2) IPOPT may lie about multipliers of simple equality bounds unless ‘f ixed_variable_tr eatment’ is set to ‘relax_bounds’.

casadi::Nlpsol

detect_simple_bo unds_is_simple

OT_BOOLVECTOR

For internal use only.

casadi::Nlpsol

detect_simple_bo unds_parts

OT_FUNCTION

For internal use only.

casadi::Nlpsol

detect_simple_bo unds_target_x

OT_INTVECTOR

For internal use only.

casadi::Nlpsol

discrete

OT_BOOLVECTOR

Indicates which of the variables are discrete, i.e. integer- valued

casadi::Nlpsol

dump

OT_BOOL

Dump function to file upon first evaluation. [false]

casadi::Function Internal

dump_dir

OT_STRING

Directory to dump inputs/outputs to. Make sure the directory exists [.]

casadi::Function Internal

dump_format

OT_STRING

Choose file format to dump matrices. See DM.from_file [mtx]

casadi::Function Internal

dump_in

OT_BOOL

Dump numerical values of inputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

dump_out

OT_BOOL

Dump numerical values of outputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

enable_fd

OT_BOOL

Enable derivative calculation by finite differencing. [default: false]]

casadi::Function Internal

enable_forward

OT_BOOL

Enable derivative calculation using generated functions for Jacobian-times- vector products - typically using forward mode AD - if available. [default: true]

casadi::Function Internal

enable_jacobian

OT_BOOL

Enable derivative calculation using generated functions for Jacobians of all differentiable outputs with respect to all differentiable inputs - if available. [default: true]

casadi::Function Internal

enable_reverse

OT_BOOL

Enable derivative calculation using generated functions for transposed Jacobian-times- vector products - typically using reverse mode AD - if available. [default: true]

casadi::Function Internal

equality

OT_BOOLVECTOR

Indicate an upfront hint which of the constraints are equalities. Some solvers may be able to exploit this knowledge. When true, the corresponding lower and upper bounds are assumed equal. When false, the corresponding bounds may be equal or different.

casadi::Nlpsol

error_on_fail

OT_BOOL

Throw exceptions when function evaluation fails (default true).

casadi::ProtoFun ction

eval_errors_fata l

OT_BOOL

When errors occur during evaluation of f,g,…,stop the iterations

casadi::Nlpsol

expand

OT_BOOL

Replace MX with SX expressions in problem formulation [false]

casadi::OracleFu nction

external_transfo rm

OT_VECTORVECTOR

List of external _transform instruction arguments. Default: empty

casadi::Function Internal

fd_method

OT_STRING

Method for finite differencing [default ‘central’]

casadi::Function Internal

fd_options

OT_DICT

Options to be passed to the finite difference instance

casadi::Function Internal

forward_options

OT_DICT

Options to be passed to a forward mode constructor

casadi::Function Internal

gather_stats

OT_BOOL

Deprecated option (ignored): Statistics are now always collected.

casadi::Function Internal

ignore_check_vec

OT_BOOL

If set to true, the input shape of F will not be checked.

casadi::Nlpsol

input_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

inputs_check

OT_BOOL

Throw exceptions when the numerical values of the inputs don’t make sense

casadi::Function Internal

is_diff_in

OT_BOOLVECTOR

Indicate for each input if it should be differentiable.

casadi::Function Internal

is_diff_out

OT_BOOLVECTOR

Indicate for each output if it should be differentiable.

casadi::Function Internal

iteration_callba ck

OT_FUNCTION

A function that will be called at each iteration with the solver as input. Check documentation of Callback .

casadi::Nlpsol

iteration_callba ck_ignore_errors

OT_BOOL

If set to true, errors thrown by iteration_callba ck will be ignored.

casadi::Nlpsol

iteration_callba ck_step

OT_INT

Only call the callback function every few iterations.

casadi::Nlpsol

jac_penalty

OT_DOUBLE

When requested for a number of forward/reverse directions, it may be cheaper to compute first the full jacobian and then multiply with seeds, rather than obtain the requested directions in a straightforward manner. Casadi uses a heuristic to decide which is cheaper. A high value of ‘jac_penalty’ makes it less likely for the heurstic to chose the full Jacobian strategy. The special value -1 indicates never to use the full Jacobian strategy

casadi::Function Internal

jacobian_options

OT_DICT

Options to be passed to a Jacobian constructor

casadi::Function Internal

jit

OT_BOOL

Use just-in-time compiler to speed up the evaluation

casadi::Function Internal

jit_cleanup

OT_BOOL

Cleanup up the temporary source file that jit creates. Default: true

casadi::Function Internal

jit_name

OT_STRING

The file name used to write out code. The actual file names used depend on ‘jit_t emp_suffix’ and include extensions. Default: ‘jit_tmp’

casadi::Function Internal

jit_options

OT_DICT

Options to be passed to the jit compiler.

casadi::Function Internal

jit_serialize

OT_STRING

Specify behaviour when serializing a jitted function: SOURCE|link|embe d.

casadi::Function Internal

jit_temp_suffix

OT_BOOL

Use a temporary (seemingly random) filename suffix for generated code and libraries. This is desired for thread- safety. This behaviour may defeat caching compiler wrappers. Default: true

casadi::Function Internal

max_io

OT_INT

Acceptable number of inputs and outputs. Warn if exceeded.

casadi::Function Internal

max_num_dir

OT_INT

Specify the maximum number of directions for derivative functions. Overrules the builtin optimize d_num_dir.

casadi::Function Internal

min_lam

OT_DOUBLE

Minimum allowed multiplier value

casadi::Nlpsol

monitor

OT_STRINGVECTOR

Set of user problem functions to be monitored

casadi::OracleFu nction

never_inline

OT_BOOL

Forbid inlining.

casadi::Function Internal

no_nlp_grad

OT_BOOL

Prevent the creation of the ‘nlp_grad’ function

casadi::Nlpsol

oracle_options

OT_DICT

Options to be passed to the oracle function

casadi::Nlpsol

output_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

post_expand

OT_BOOL

After construction, expand this Function . Default: False

casadi::Function Internal

post_expand_opti ons

OT_DICT

Options to be passed to post- construction expansion. Default: empty

casadi::Function Internal

print_in

OT_BOOL

Print numerical values of inputs [default: false]

casadi::Function Internal

print_out

OT_BOOL

Print numerical values of outputs [default: false]

casadi::Function Internal

print_time

OT_BOOL

print information about execution time. Implies record_time.

casadi::ProtoFun ction

record_time

OT_BOOL

record information about execution time, for retrieval with stats().

casadi::ProtoFun ction

regularity_check

OT_BOOL

Throw exceptions when NaN or Inf appears during evaluation

casadi::ProtoFun ction

reverse_options

OT_DICT

Options to be passed to a reverse mode constructor

casadi::Function Internal

sens_linsol

OT_STRING

Linear solver used for parametric sensitivities (default ‘qr’).

casadi::Nlpsol

sens_linsol_opti ons

OT_DICT

Linear solver options used for parametric sensitivities.

casadi::Nlpsol

show_eval_warnin gs

OT_BOOL

Show warnings generated from function evaluations [true]

casadi::OracleFu nction

specific_options

OT_DICT

Options for specific auto- generated functions, overwriting the defaults from common_options. Nested dictionary.

casadi::OracleFu nction

user_data

OT_VOIDPTR

A user-defined field that can be used to identify the function or pass additional information

casadi::Function Internal

verbose

OT_BOOL

Verbose evaluation for debugging

casadi::ProtoFun ction

verbose_init

OT_BOOL

Print out timing information about the different stages of initialization

casadi::Nlpsol

warn_initial_bou nds

OT_BOOL

Warn if the initial guess does not satisfy LBX and UBX

casadi::Nlpsol

>Input scheme: casadi::NlpsolInput (NLPSOL_NUM_IN = 8)

Full name

Short

Description

NLPSOL_X0

x0

Decision variables, initial guess (nx x 1)

NLPSOL_P

p

Value of fixed parameters (np x 1)

NLPSOL_LBX

lbx

Decision variables lower bound (nx x 1), default -inf.

NLPSOL_UBX

ubx

Decision variables upper bound (nx x 1), default +inf.

NLPSOL_LBG

lbg

Constraints lower bound (ng x 1), default -inf.

NLPSOL_UBG

ubg

Constraints upper bound (ng x 1), default +inf.

NLPSOL_LAM_X0

lam_x0

Lagrange multipliers for bounds on X, initial guess (nx x 1)

NLPSOL_LAM_G0

lam_g0

Lagrange multipliers for bounds on G, initial guess (ng x 1)

>Output scheme: casadi::NlpsolOutput (NLPSOL_NUM_OUT = 6)

Full name

Short

Description

NLPSOL_X

x

Decision variables at the optimal solution (nx x 1)

NLPSOL_F

f

Cost function value at the optimal solution (1 x 1)

NLPSOL_G

g

Constraints function at the optimal solution (ng x 1)

NLPSOL_LAM_X

lam_x

Lagrange multipliers for bounds on X at the solution (nx x 1)

NLPSOL_LAM_G

lam_g

Lagrange multipliers for bounds on G at the solution (ng x 1)

NLPSOL_LAM_P

lam_p

Lagrange multipliers for bounds on P at the solution (np x 1)

List of plugins - AmplInterface

  • blocksqp

  • bonmin

  • fatrop

  • ipopt

  • knitro

  • madnlp

  • snopt

  • worhp

  • feasiblesqpmethod

  • qrsqp

  • scpgen

  • sqpmethod

Note: some of the plugins in this list might not be available on your

system. Also, there might be extra plugins available to you that are not listed here. You can obtain their documentation with Nlpsol.doc(“myextraplugin”)


1. AmplInterface

>List of available options

Id

Type

Description

solver

OT_STRING

AMPL solver binary


1. blocksqp

This is a modified version of blockSQP by Janka et al.

Dennis Janka, Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_224

>List of available options

Id

Type

Description

block_hess

OT_INT

Blockwise Hessian approximation?

col_eps

OT_DOUBLE

Epsilon for COL scaling strategy

col_tau1

OT_DOUBLE

tau1 for COL scaling strategy

col_tau2

OT_DOUBLE

tau2 for COL scaling strategy

conv_strategy

OT_INT

Convexification strategy

delta

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

delta_h0

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

eps

OT_DOUBLE

Values smaller than this are regarded as numerically zero

eta

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

fallback_scaling

OT_INT

If indefinite update is used, the type of fallback strategy

fallback_update

OT_INT

If indefinite update is used, the type of fallback strategy

gamma_f

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

gamma_theta

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

globalization

OT_BOOL

Enable globalization

hess_damp

OT_INT

Activate Powell damping for BFGS

hess_damp_fac

OT_DOUBLE

Damping factor for BFGS Powell modification

hess_lim_mem

OT_INT

Full or limited memory

hess_memsize

OT_INT

Memory size for L-BFGS updates

hess_scaling

OT_INT

Scaling strategy for Hessian approximation

hess_update

OT_INT

Type of Hessian approximation

ini_hess_diag

OT_DOUBLE

Initial Hessian guess: diagonal matrix diag(iniHessDiag)

kappa_f

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

kappa_minus

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

kappa_plus

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

kappa_plus_max

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

kappa_soc

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

linsol

OT_STRING

The linear solver to be used by the QP method

max_consec_reduced_steps

OT_INT

Maximum number of consecutive reduced steps

max_consec_skipped_updates

OT_INT

Maximum number of consecutive skipped updates

max_conv_qp

OT_INT

How many additional QPs may be solved for convexification per iteration?

max_it_qp

OT_INT

Maximum number of QP iterations per SQP iteration

max_iter

OT_INT

Maximum number of SQP iterations

max_line_search

OT_INT

Maximum number of steps in line search

max_soc_iter

OT_INT

Maximum number of SOC line search iterations

max_time_qp

OT_DOUBLE

Maximum number of time in seconds per QP solve per SQP iteration

nlinfeastol

OT_DOUBLE

Nonlinear feasibility tolerance

obj_lo

OT_DOUBLE

Lower bound on objective function [-inf]

obj_up

OT_DOUBLE

Upper bound on objective function [inf]

opttol

OT_DOUBLE

Optimality tolerance

print_header

OT_BOOL

Print solver header at startup

print_iteration

OT_BOOL

Print SQP iterations

print_maxit_reached

OT_BOOL

Print error when maximum number of SQP iterations reached

qp_init

OT_BOOL

Use warmstarting

qpsol

OT_STRING

The QP solver to be used by the SQP method

qpsol_options

OT_DICT

Options to be passed to the QP solver

restore_feas

OT_BOOL

Use feasibility restoration phase

rho

OT_DOUBLE

Feasibility restoration phase parameter

s_f

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

s_theta

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

schur

OT_BOOL

Use qpOASES Schur compliment approach

skip_first_globalization

OT_BOOL

No globalization strategy in first iteration

theta_max

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

theta_min

OT_DOUBLE

Filter line search parameter, cf. IPOPT paper

warmstart

OT_BOOL

Use warmstarting

which_second_derv

OT_INT

For which block should second derivatives be provided by the user

zeta

OT_DOUBLE

Feasibility restoration phase parameter


1. bonmin

When in warmstart mode, output NLPSOL_LAM_X may be used as input

NOTE: Even when max_iter == 0, it is not guaranteed that input(NLPSOL_X0) == output(NLPSOL_X). Indeed if bounds on X or constraints are unmet, they will differ.

For a good tutorial on BONMIN, see http://drops.dagstuhl.de/volltexte/2009/2089/pdf/09061.WaechterAndreas.Paper.2089.pdf

A good resource about the algorithms in BONMIN is: Wachter and L. T.

Biegler, On the Implementation of an Interior-Point Filter Line-Search

Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp. 25-57, 2006 (As Research Report RC 23149, IBM T. J. Watson Research Center, Yorktown, USA

Caveats: with default options, multipliers for the decision variables are wrong

for equality constraints. Change the ‘fixed_variable_treatment’ to

‘make_constraint’ or ‘relax_bounds’ to obtain correct results.

Extra doc: https://github.com/casadi/casadi/wiki/L_223

>List of available options

Id

Type

Description

bonmin

OT_DICT

Options to be passed to BONMIN

con_integer_md

OT_DICT

Integer metadata (a dictionary with lists of integers) about constraints to be passed to BONMIN

con_numeric_md

OT_DICT

Numeric metadata (a dictionary with lists of reals) about constraints to be passed to BONMIN

con_string_md

OT_DICT

String metadata (a dictionary with lists of strings) about constraints to be passed to BONMIN

grad_f

OT_FUNCTION

Function for calculating the gradient of the objective (column, autogenerated by default)

grad_f_options

OT_DICT

Options for the autogenerated gradient of the objective.

hess_lag

OT_FUNCTION

Function for calculating the Hessian of the Lagrangian (autogenerated by default)

hess_lag_options

OT_DICT

Options for the autogenerated Hessian of the Lagrangian.

jac_g

OT_FUNCTION

Function for calculating the Jacobian of the constraints (autogenerated by default)

jac_g_options

OT_DICT

Options for the autogenerated Jacobian of the constraints.

pass_nonlinear_constrai nts

OT_BOOL

Pass list of constraints entering nonlinearly to BONMIN

pass_nonlinear_variable s

OT_BOOL

Pass list of variables entering nonlinearly to BONMIN

sos1_groups

OT_INTVECTORVECTOR

Options for the autogenerated gradient of the objective.

sos1_priorities

OT_INTVECTOR

Options for the autogenerated gradient of the objective.

sos1_weights

OT_DOUBLEVECTORVECTOR

Options for the autogenerated gradient of the objective.

var_integer_md

OT_DICT

Integer metadata (a dictionary with lists of integers) about variables to be passed to BONMIN

var_numeric_md

OT_DICT

Numeric metadata (a dictionary with lists of reals) about variables to be passed to BONMIN

var_string_md

OT_DICT

String metadata (a dictionary with lists of strings) about variables to be passed to BONMIN


1. fatrop

>List of available options

Id

Type

Description

N

OT_INT

OCP horizon

convexify_margin

OT_DOUBLE

When using a convexification strategy, make sure that the smallest eigenvalue is at least this (default: 1e-7).

convexify_strategy

OT_STRING

NONE|regularize|eigen- reflect|eigen-clip. Strategy to convexify the Lagrange Hessian before passing it to the solver.

debug

OT_BOOL

Produce debug information (default: false)

fatrop

OT_DICT

Options to be passed to fatrop

ng

OT_INTVECTOR

Number of non-dynamic constraints, length N+1

nu

OT_INTVECTOR

Number of controls, length N+1

nx

OT_INTVECTOR

Number of states, length N+1

structure_detection

OT_STRING

NONE | auto | manual

Fatrop is a solver developed at KU Leuven by Lander Vanroye and Wilm Decre.

The algorithm is based on IPOPT, but the linear algebra is much more

efficient.

With structure_detection = ‘none’ (default), it will behave as a general- purpose dense nonlinear program solver.

With structure_detection = ‘manual’, you can specify a block structure.

Let’s say you perform multiply shooting with a system

x_k+1 = A_k x_k + B_k u_k

Suppose your constraint Jacobian looks like:

nx0  nu0  nx1  nu1  nx2  nu2
-----------------------------
nx1 |A0 B0 I0

ng1 |C0 D0 nx2 | A1 B1 I1 ng2 | C1 D1 ng3 | C2 D2

with n* capturing the number of states, inputs, and constraints in each block.

You can then specify this structure with:

N = 2 nx = [nx0 ,nx1, nx2] nu = [nu0, nu1, nu2] ng = [ng1, ng2, ng3]

With structure_detection = ‘auto’, the block-defining parameters nx, nu, ng, and N are automatically detected from the sparsity pattern.


1. ipopt

When in warmstart mode, output NLPSOL_LAM_X may be used as input

NOTE: Even when max_iter == 0, it is not guaranteed that input(NLPSOL_X0) == output(NLPSOL_X). Indeed if bounds on X or constraints are unmet, they will differ.

For a good tutorial on IPOPT, see http://drops.dagstuhl.de/volltexte/2009/2089/pdf/09061.WaechterAndreas.Paper.2089.pdf

A good resource about the algorithms in IPOPT is: Wachter and L. T.

Biegler, On the Implementation of an Interior-Point Filter Line-Search

Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp. 25-57, 2006 (As Research Report RC 23149, IBM T. J. Watson Research Center, Yorktown, USA

Caveats: with default options, multipliers for the decision variables are wrong

for equality constraints. Change the ‘fixed_variable_treatment’ to

‘make_constraint’ or ‘relax_bounds’ to obtain correct results.

Extra doc: https://github.com/casadi/casadi/wiki/L_21y

>List of available options

Id

Type

Description

clip_inactive_lam

OT_BOOL

Explicitly set Lagrange multipliers to 0 when bound is deemed inactive (default: false).

con_integer_md

OT_DICT

Integer metadata (a dictionary with lists of integers) about constraints to be passed to IPOPT

con_numeric_md

OT_DICT

Numeric metadata (a dictionary with lists of reals) about constraints to be passed to IPOPT

con_string_md

OT_DICT

String metadata (a dictionary with lists of strings) about constraints to be passed to IPOPT

convexify_margin

OT_DOUBLE

When using a convexification strategy, make sure that the smallest eigenvalue is at least this (default: 1e-7).

convexify_strategy

OT_STRING

NONE|regularize|eigen- reflect|eigen-clip. Strategy to convexify the Lagrange Hessian before passing it to the solver.

grad_f

OT_FUNCTION

Function for calculating the gradient of the objective (column, autogenerated by default)

hess_lag

OT_FUNCTION

Function for calculating the Hessian of the Lagrangian (autogenerated by default)

inactive_lam_strategy

OT_STRING

Strategy to detect if a bound is inactive. RELTOL: use solver-defined constraint tolerance * inactive_lam_value|abstol: use inactive_lam_value

inactive_lam_value

OT_DOUBLE

Value used in inactive_lam_strategy (default: 10).

ipopt

OT_DICT

Options to be passed to IPOPT

jac_g

OT_FUNCTION

Function for calculating the Jacobian of the constraints (autogenerated by default)

max_iter_eig

OT_DOUBLE

Maximum number of iterations to compute an eigenvalue decomposition (default: 50).

pass_nonlinear_variables

OT_BOOL

Pass list of variables entering nonlinearly to IPOPT

var_integer_md

OT_DICT

Integer metadata (a dictionary with lists of integers) about variables to be passed to IPOPT

var_numeric_md

OT_DICT

Numeric metadata (a dictionary with lists of reals) about variables to be passed to IPOPT

var_string_md

OT_DICT

String metadata (a dictionary with lists of strings) about variables to be passed to IPOPT


1. knitro

KNITRO interface

Extra doc: https://github.com/casadi/casadi/wiki/L_22c

>List of available options

Id

Type

Description

complem_variables

OT_INTVECTORVECTOR

List of complementary constraints on simple bounds. Pair (i, j) encodes complementarity between the bounds on variable i and variable j.

contype

OT_INTVECTOR

Type of constraint

detect_linear_constraint s

OT_BOOL

Detect type of constraints

knitro

OT_DICT

Options to be passed to KNITRO

options_file

OT_STRING

Read options from file (solver specific)


1. madnlp

>List of available options

Id

Type

Description

convexify_margin

OT_DOUBLE

When using a convexification strategy, make sure that the smallest eigenvalue is at least this (default: 1e-7).

convexify_strategy

OT_STRING

NONE|regularize|eigen-reflect|eigen- clip. Strategy to convexify the Lagrange Hessian before passing it to the solver.

madnlp

OT_DICT

Options to be passed to madnlp

ng

OT_INTVECTOR

Number of constraints

nw

OT_INTVECTOR

Number of variables


1. snopt

SNOPT interface

Extra doc: https://github.com/casadi/casadi/wiki/L_22m

>List of available options

Id

Type

Description

snopt

OT_DICT

Options to be passed to SNOPT

start

OT_STRING

Warm-start options for Worhp: cold|warm|hot


1. worhp

WORHP interface

Designed for Worhp 1.12

>List of available options

Id

Type

Description

worhp

OT_DICT

Options to be passed to WORHP


1. feasiblesqpmethod

A textbook FeasibleSQPMethod

Extra doc: https://github.com/casadi/casadi/wiki/L_241

>List of available options

Id

Type

Description

anderson_memory

OT_INT

Anderson memory. If Anderson is used default is 1, else default is 0.

contraction_acceptance_val ue

OT_DOUBLE

If the empirical contraction rate in the feasibility iterations is above this value in the heuristics the iterations are aborted.

convexify_margin

OT_DOUBLE

When using a convexification strategy, make sure that the smallest eigenvalue4 is at least this (default: 1e-7).

convexify_strategy

OT_STRING

NONE|regularize|eigen- reflect|eigen-clip. Strategy to convexify the Lagrange Hessian before passing it to the solver.

f

OT_FUNCTION

Function for calculating the objective function (autogenerated by default)

feas_tol

OT_DOUBLE

Feasibility tolerance. Below this tolerance an iterate is considered to be feasible.

g

OT_FUNCTION

Function for calculating the constraints (autogenerated by default)

grad_f

OT_FUNCTION

Function for calculating the gradient of the objective (autogenerated by default)

hess_lag

OT_FUNCTION

Function for calculating the Hessian of the Lagrangian (autogenerated by default)

hessian_approximation

OT_STRING

limited-memory|exact

init_feasible

OT_BOOL

Initialize the QP subproblems with a feasible initial value (default: false).

jac_g

OT_FUNCTION

Function for calculating the Jacobian of the constraints (autogenerated by default)

lbfgs_memory

OT_INT

Size of L-BFGS memory.

max_inner_iter

OT_DOUBLE

Maximum number of inner iterations.

max_iter

OT_INT

Maximum number of SQP iterations

max_iter_eig

OT_DOUBLE

Maximum number of iterations to compute an eigenvalue decomposition (default: 50).

merit_memory

OT_INT

Size of memory to store history of merit function values

min_iter

OT_INT

Minimum number of SQP iterations

optim_tol

OT_DOUBLE

Optimality tolerance. Below this value an iterate is considered to be optimal.

print_header

OT_BOOL

Print the header with problem statistics

print_iteration

OT_BOOL

Print the iterations

print_status

OT_BOOL

Print a status message after solving

qpsol

OT_STRING

The QP solver to be used by the SQP method [qpoases]

qpsol_options

OT_DICT

Options to be passed to the QP solver

solve_type

OT_STRING

The solver type: Either SQP or SLP. Defaults to SQP

tol_du

OT_DOUBLE

Stopping criterion for dual infeasability

tol_pr

OT_DOUBLE

Stopping criterion for primal infeasibility

tr_acceptance

OT_DOUBLE

Is the trust-region ratio above this value, the step is accepted.

tr_alpha1

OT_DOUBLE

Lower alpha in trust- region size criterion.

tr_alpha2

OT_DOUBLE

Upper alpha in trust- region size criterion.

tr_eta1

OT_DOUBLE

Lower eta in trust-region acceptance criterion.

tr_eta2

OT_DOUBLE

Upper eta in trust-region acceptance criterion.

tr_rad0

OT_DOUBLE

Initial trust-region radius.

tr_rad_max

OT_DOUBLE

Maximum trust-region radius.

tr_rad_min

OT_DOUBLE

Minimum trust-region radius.

tr_scale_vector

OT_DOUBLEVECTOR

Vector that tells where trust-region is applied.

tr_tol

OT_DOUBLE

Trust-region tolerance. Below this value another scalar is equal to the trust region radius.

use_anderson

OT_BOOL

Use Anderson Acceleration. (default false)

watchdog

OT_INT

Number of watchdog iterations in feasibility iterations. After this amount of iterations, it is checked with the contraction acceptance value, if iterations are converging.


1. qrsqp

A textbook SQPMethod

Extra doc: https://github.com/casadi/casadi/wiki/L_22u


1. scpgen

A structure-exploiting sequential quadratic programming (to be come

sequential convex programming) method for nonlinear programming.

Extra doc: https://github.com/casadi/casadi/wiki/L_232

>List of available options

Id

Type

Description

beta

OT_DOUBLE

Line-search parameter, restoration factor of stepsize

c1

OT_DOUBLE

Armijo condition, coefficient of decrease in merit

codegen

OT_BOOL

C-code generation

hessian_approximation

OT_STRING

gauss-newton|exact

lbfgs_memory

OT_INT

Size of L-BFGS memory.

max_iter

OT_INT

Maximum number of SQP iterations

max_iter_ls

OT_INT

Maximum number of linesearch iterations

merit_memsize

OT_INT

Size of memory to store history of merit function values

merit_start

OT_DOUBLE

Lower bound for the merit function parameter

name_x

OT_STRINGVECTOR

Names of the variables.

print_header

OT_BOOL

Print the header with problem statistics

print_x

OT_INTVECTOR

Which variables to print.

qpsol

OT_STRING

The QP solver to be used by the SQP method

qpsol_options

OT_DICT

Options to be passed to the QP solver

reg_threshold

OT_DOUBLE

Threshold for the regularization.

regularize

OT_BOOL

Automatic regularization of Lagrange Hessian.

tol_du

OT_DOUBLE

Stopping criterion for dual infeasability

tol_pr

OT_DOUBLE

Stopping criterion for primal infeasibility

tol_pr_step

OT_DOUBLE

Stopping criterion for the step size

tol_reg

OT_DOUBLE

Stopping criterion for regularization


1. sqpmethod

A textbook SQPMethod

Extra doc: https://github.com/casadi/casadi/wiki/L_22x

>List of available options

Id

Type

Description

beta

OT_DOUBLE

Line-search parameter, restoration factor of stepsize

c1

OT_DOUBLE

Armijo condition, coefficient of decrease in merit

convexify_margin

OT_DOUBLE

When using a convexification strategy, make sure that the smallest eigenvalue is at least this (default: 1e-7).

convexify_strategy

OT_STRING

NONE|regularize|eigen- reflect|eigen-clip. Strategy to convexify the Lagrange Hessian before passing it to the solver.

elastic_mode

OT_BOOL

Enable the elastic mode which is used when the QP is infeasible (default: false).

gamma_0

OT_DOUBLE

Starting value for the penalty parameter of elastic mode (default: 1).

gamma_1_min

OT_DOUBLE

Minimum value for gamma_1 (default: 1e-5).

gamma_max

OT_DOUBLE

Maximum value for the penalty parameter of elastic mode (default: 1e20).

hess_lag

OT_FUNCTION

Function for calculating the Hessian of the Lagrangian (autogenerated by default)

hessian_approximation

OT_STRING

limited-memory|exact

init_feasible

OT_BOOL

Initialize the QP subproblems with a feasible initial value (default: false).

jac_fg

OT_FUNCTION

Function for calculating the gradient of the objective and Jacobian of the constraints (autogenerated by default)

lbfgs_memory

OT_INT

Size of L-BFGS memory.

max_iter

OT_INT

Maximum number of SQP iterations

max_iter_eig

OT_DOUBLE

Maximum number of iterations to compute an eigenvalue decomposition (default: 50).

max_iter_ls

OT_INT

Maximum number of linesearch iterations

merit_memory

OT_INT

Size of memory to store history of merit function values

min_iter

OT_INT

Minimum number of SQP iterations

min_step_size

OT_DOUBLE

The size (inf-norm) of the step size should not become smaller than this.

print_header

OT_BOOL

Print the header with problem statistics

print_iteration

OT_BOOL

Print the iterations

print_status

OT_BOOL

Print a status message after solving

qpsol

OT_STRING

The QP solver to be used by the SQP method [qpoases]

qpsol_options

OT_DICT

Options to be passed to the QP solver

second_order_corrections

OT_BOOL

Enable second order corrections. These are used when a step is considered bad by the merit function and constraint norm (default: false).

tol_du

OT_DOUBLE

Stopping criterion for dual infeasability

tol_pr

OT_DOUBLE

Stopping criterion for primal infeasibility

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_21q

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/nlpsol.hpp#L120

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/nlpsol.cpp#L120-L123



nlpsol(str name, str solver, Importer compiler, dict opts)
nlpsol(str name, str solver, NlpBuilder nl, dict opts)
nlpsol(str name, str solver, dict:MX nlp, dict opts)
nlpsol(str name, str solver, str fname, dict opts)
nlpsol(str name, str solver, Function nlp, dict opts)

[INTERNAL]


3.2. QP

3.2.1. High-level

qpsol(*args)

[INTERNAL]

qpsol(str name, str solver, dict:SX qp, dict opts) -> Function
qpsol(str name, str solver, dict:MX qp, dict opts) -> Function

3.2.2. Low-level

conic(*args)

[INTERNAL]

conic(str name, str solver, dict:Sparsity qp, dict opts) -> Function

Create a QP solver Solves the following strictly convex problem:

min          1/2 x' H x + g' x
x

subject to
LBA <= A x <= UBA
LBX <= x   <= UBX

resize(Q x, np, np) + P >= 0 (psd)

with :
H sparse (n x n) positive definite
g dense  (n x 1)
A sparse (nc x n)
Q sparse symmetric (np^2 x n)
P sparse symmetric (np x nq)

n: number of decision variables (x)
nc: number of constraints (A)
nq: shape of psd constraint matrix

If H is not positive-definite, the solver should throw an error.

Second-order cone constraints can be added as psd constraints through a helper function ‘soc’:

x in R^n y in R

|| x ||_2 <= y

<=>

soc(x, y) psd

This can be proven with soc(x, y)=[y*I x; x’ y] using the Shur complement.

General information

>List of available options

Id

Type

Description

Used in

ad_weight

OT_DOUBLE

Weighting factor for derivative calculation.When there is an option of either using forward or reverse mode directional derivatives, the condition ad_wei ght*nf<=(1- ad_weight)*na is used where nf and na are estimates of the number of forward/reverse mode directional derivatives needed. By default, ad_weight is calculated automatically, but this can be overridden by setting this option. In particular, 0 means forcing forward mode and 1 forcing reverse mode. Leave unset for (class specific) heuristics.

casadi::Function Internal

ad_weight_sp

OT_DOUBLE

Weighting factor for sparsity pattern calculation calc ulation.Override s default behavior. Set to 0 and 1 to force forward and reverse mode respectively. Cf. option “ad_weight”. When set to -1, sparsity is completely ignored and dense matrices are used.

casadi::Function Internal

always_inline

OT_BOOL

Force inlining.

casadi::Function Internal

cache

OT_DICT

Prepopulate the function cache. Default: empty

casadi::Function Internal

compiler

OT_STRING

Just-in-time compiler plugin to be used.

casadi::Function Internal

custom_jacobian

OT_FUNCTION

Override CasADi’s AD. Use together with ‘jac_penalty’: 0. Note: Highly experimental. Syntax may break often.

casadi::Function Internal

der_options

OT_DICT

Default options to be used to populate forward_options, reverse_options, and jacobian_options before those options are merged in.

casadi::Function Internal

derivative_of

OT_FUNCTION

The function is a derivative of another function. The type of derivative (directional derivative, Jacobian) is inferred from the function name.

casadi::Function Internal

discrete

OT_BOOLVECTOR

Indicates which of the variables are discrete, i.e. integer- valued

casadi::Conic

dump

OT_BOOL

Dump function to file upon first evaluation. [false]

casadi::Function Internal

dump_dir

OT_STRING

Directory to dump inputs/outputs to. Make sure the directory exists [.]

casadi::Function Internal

dump_format

OT_STRING

Choose file format to dump matrices. See DM.from_file [mtx]

casadi::Function Internal

dump_in

OT_BOOL

Dump numerical values of inputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

dump_out

OT_BOOL

Dump numerical values of outputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

enable_fd

OT_BOOL

Enable derivative calculation by finite differencing. [default: false]]

casadi::Function Internal

enable_forward

OT_BOOL

Enable derivative calculation using generated functions for Jacobian-times- vector products - typically using forward mode AD - if available. [default: true]

casadi::Function Internal

enable_jacobian

OT_BOOL

Enable derivative calculation using generated functions for Jacobians of all differentiable outputs with respect to all differentiable inputs - if available. [default: true]

casadi::Function Internal

enable_reverse

OT_BOOL

Enable derivative calculation using generated functions for transposed Jacobian-times- vector products - typically using reverse mode AD - if available. [default: true]

casadi::Function Internal

equality

OT_BOOLVECTOR

Indicate an upfront hint which of the constraints are equalities. Some solvers may be able to exploit this knowledge. When true, the corresponding lower and upper bounds are assumed equal. When false, the corresponding bounds may be equal or different.

casadi::Conic

error_on_fail

OT_BOOL

Throw exceptions when function evaluation fails (default true).

casadi::ProtoFun ction

external_transfo rm

OT_VECTORVECTOR

List of external _transform instruction arguments. Default: empty

casadi::Function Internal

fd_method

OT_STRING

Method for finite differencing [default ‘central’]

casadi::Function Internal

fd_options

OT_DICT

Options to be passed to the finite difference instance

casadi::Function Internal

forward_options

OT_DICT

Options to be passed to a forward mode constructor

casadi::Function Internal

gather_stats

OT_BOOL

Deprecated option (ignored): Statistics are now always collected.

casadi::Function Internal

input_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

inputs_check

OT_BOOL

Throw exceptions when the numerical values of the inputs don’t make sense

casadi::Function Internal

is_diff_in

OT_BOOLVECTOR

Indicate for each input if it should be differentiable.

casadi::Function Internal

is_diff_out

OT_BOOLVECTOR

Indicate for each output if it should be differentiable.

casadi::Function Internal

jac_penalty

OT_DOUBLE

When requested for a number of forward/reverse directions, it may be cheaper to compute first the full jacobian and then multiply with seeds, rather than obtain the requested directions in a straightforward manner. Casadi uses a heuristic to decide which is cheaper. A high value of ‘jac_penalty’ makes it less likely for the heurstic to chose the full Jacobian strategy. The special value -1 indicates never to use the full Jacobian strategy

casadi::Function Internal

jacobian_options

OT_DICT

Options to be passed to a Jacobian constructor

casadi::Function Internal

jit

OT_BOOL

Use just-in-time compiler to speed up the evaluation

casadi::Function Internal

jit_cleanup

OT_BOOL

Cleanup up the temporary source file that jit creates. Default: true

casadi::Function Internal

jit_name

OT_STRING

The file name used to write out code. The actual file names used depend on ‘jit_t emp_suffix’ and include extensions. Default: ‘jit_tmp’

casadi::Function Internal

jit_options

OT_DICT

Options to be passed to the jit compiler.

casadi::Function Internal

jit_serialize

OT_STRING

Specify behaviour when serializing a jitted function: SOURCE|link|embe d.

casadi::Function Internal

jit_temp_suffix

OT_BOOL

Use a temporary (seemingly random) filename suffix for generated code and libraries. This is desired for thread- safety. This behaviour may defeat caching compiler wrappers. Default: true

casadi::Function Internal

max_io

OT_INT

Acceptable number of inputs and outputs. Warn if exceeded.

casadi::Function Internal

max_num_dir

OT_INT

Specify the maximum number of directions for derivative functions. Overrules the builtin optimize d_num_dir.

casadi::Function Internal

never_inline

OT_BOOL

Forbid inlining.

casadi::Function Internal

output_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

post_expand

OT_BOOL

After construction, expand this Function . Default: False

casadi::Function Internal

post_expand_opti ons

OT_DICT

Options to be passed to post- construction expansion. Default: empty

casadi::Function Internal

print_in

OT_BOOL

Print numerical values of inputs [default: false]

casadi::Function Internal

print_out

OT_BOOL

Print numerical values of outputs [default: false]

casadi::Function Internal

print_problem

OT_BOOL

Print a numeric description of the problem

casadi::Conic

print_time

OT_BOOL

print information about execution time. Implies record_time.

casadi::ProtoFun ction

record_time

OT_BOOL

record information about execution time, for retrieval with stats().

casadi::ProtoFun ction

regularity_check

OT_BOOL

Throw exceptions when NaN or Inf appears during evaluation

casadi::ProtoFun ction

reverse_options

OT_DICT

Options to be passed to a reverse mode constructor

casadi::Function Internal

user_data

OT_VOIDPTR

A user-defined field that can be used to identify the function or pass additional information

casadi::Function Internal

verbose

OT_BOOL

Verbose evaluation for debugging

casadi::ProtoFun ction

>Input scheme: casadi::ConicInput (CONIC_NUM_IN = 12)

Full name

Short

Description

CONIC_H

h

The square matrix H: sparse, (n x n). Only the lower triangular part is actually used. The matrix is assumed to be symmetrical.

CONIC_G

g

The vector g: dense, (n x 1)

CONIC_A

a

The matrix A: sparse, (nc x n) - product with x must be dense.

CONIC_LBA

lba

dense, (nc x 1)

CONIC_UBA

uba

dense, (nc x 1)

CONIC_LBX

lbx

dense, (n x 1)

CONIC_UBX

ubx

dense, (n x 1)

CONIC_X0

x0

dense, (n x 1)

CONIC_LAM_X0

lam_x0

dense

CONIC_LAM_A0

lam_a0

dense

CONIC_Q

q

The matrix Q: sparse symmetric, (np^2 x n)

CONIC_P

p

The matrix P: sparse symmetric, (np x np)

>Output scheme: casadi::ConicOutput (CONIC_NUM_OUT = 4)

Full name

Short

Description

CONIC_X

x

The primal solution.

CONIC_COST

cost

The optimal cost.

CONIC_LAM_A

lam_a

The dual solution corresponding to linear bounds.

CONIC_LAM_X

lam_x

The dual solution corresponding to simple bounds.

List of plugins - cbc

  • clp

  • cplex

  • daqp

  • fatrop

  • gurobi

  • highs

  • hpipm

  • hpmpc

  • ooqp

  • osqp

  • proxqp

  • qpoases

  • sqic

  • superscs

  • ipqp

  • nlpsol

  • qrqp

Note: some of the plugins in this list might not be available on your

system. Also, there might be extra plugins available to you that are not listed here. You can obtain their documentation with Conic.doc(“myextraplugin”)


1. cbc

Interface to Cbc solver for sparse Quadratic Programs

Extra doc: https://github.com/casadi/casadi/wiki/L_221

>List of available options

Id

Type

Description

cbc

OT_DICT

Options to be passed to CBC.Three sets of options are supported. The first can be found in OsiSolverParameters.hpp. The second can be found in CbcModel.hpp. The third are options that can be passed to CbcMain1.

hot_start

OT_BOOL

Hot start with x0 [Default false].

sos_groups

OT_INTVECTORVECTOR

Definition of SOS groups by indices.

sos_types

OT_INTVECTOR

Specify 1 or 2 for each SOS group.

sos_weights

OT_DOUBLEVECTORVECTOR

Weights corresponding to SOS entries.


1. clp

Interface to Clp solver for sparse Quadratic Programs

Extra doc: https://github.com/casadi/casadi/wiki/L_22d

>List of available options

Id

Type

Description

clp

OT_DICT

Options to be passed to CLP. A first set of options can be found in ClpParameters.hpp. eg. ‘PrimalTolerance’. There are other options in additions. ‘AutomaticScaling’ (bool) is recognised. ‘initial_solve’ (default off) activates the use of Clp’s initialSolve. ‘initial_solve_options’ takes a dictionary with following keys (see ClpSolve.hpp): SolveType (string), PresolveType (string), NumberPasses, SpecialOptions (intvectorvector), IndependentOptions (intvectorvector).


1. cplex

Interface to Cplex solver for sparse Quadratic Programs

Extra doc: https://github.com/casadi/casadi/wiki/L_22a

>List of available options

Id

Type

Description

cplex

OT_DICT

Options to be passed to CPLEX

dep_check

OT_INT

Detect redundant constraints.

dump_filename

OT_STRING

The filename to dump to.

dump_to_file

OT_BOOL

Dumps QP to file in CPLEX format.

mip_start

OT_BOOL

Hot start integers with x0 [Default false].

qp_method

OT_INT

Determines which CPLEX algorithm to use.

sos_groups

OT_INTVECTORVECTOR

Definition of SOS groups by indices.

sos_types

OT_INTVECTOR

Specify 1 or 2 for each SOS group.

sos_weights

OT_DOUBLEVECTORVECTOR

Weights corresponding to SOS entries.

tol

OT_DOUBLE

Tolerance of solver

version_suffix

OT_STRING

Specify version of cplex to load. We will attempt to load l ibcplex<version_suffix>.[so|dll |dylib]. Default value is taken from CPLEX_VERSION env variable.

warm_start

OT_BOOL

Use warm start with simplex methods (affects only the simplex methods).


1. daqp

Interface to Daqp solver for sparse Quadratic Programs, see daqp.dev for more information and https://www.maths.ed.ac.uk/hall/Daqp/DaqpOptions.html for a list of options.

Extra doc: https://github.com/casadi/casadi/wiki/L_27p

>List of available options

Id

Type

Description

daqp

OT_DICT

Options to be passed to Daqp.


1. fatrop

Interface to Fatrop Solver

In order to use this interface, you must:

Decision variables must only by state and control, and the variable

ordering must be [x0 u0 x1 u1 …]

The constraints must be in order: [ gap0 lincon0 gap1 lincon1 ]

gap: Ak+1 = Ak xk + Bk uk lincon: yk= Ck xk + Dk uk

A0 B0 -I
C0 D0
       A1 B1 -I
       C1 D1

where I must be a diagonal sparse matrix Either supply all of N, nx, ng, nu options or rely on automatic detection

Extra doc: https://github.com/casadi/casadi/wiki/L_27g

>List of available options

Id

Type

Description

N

OT_INT

OCP horizon

fatrop

OT_DICT

Options to be passed to fatrop

ng

OT_INTVECTOR

Number of non-dynamic constraints, length N+1

nu

OT_INTVECTOR

Number of controls, length N

nx

OT_INTVECTOR

Number of states, length N+1

structure_detection

OT_STRING

NONE | auto | manual


1. gurobi

Interface to the GUROBI Solver for quadratic programming

Extra doc: https://github.com/casadi/casadi/wiki/L_22q

>List of available options

Id

Type

Description

gurobi

OT_DICT

Options to be passed to gurobi.

sos_groups

OT_INTVECTORVECTOR

Definition of SOS groups by indices.

sos_types

OT_INTVECTOR

Specify 1 or 2 for each SOS group.

sos_weights

OT_DOUBLEVECTORVECTOR

Weights corresponding to SOS entries.

vtype

OT_STRINGVECTOR

Type of variables: [CONTINUOUS|bin ary|integer|semicont|semiint]


1. highs

Interface to HiGHS solver for sparse Quadratic Programs, see highs.dev for more information and https://www.maths.ed.ac.uk/hall/HiGHS/HighsOptions.html

for a list of options.

Extra doc: https://github.com/casadi/casadi/wiki/L_22f

>List of available options

Id

Type

Description

highs

OT_DICT

Options to be passed to HiGHS.


1. hpipm

Interface to HPIPM Solver

In order to use this interface, you must:

Decision variables must only by state and control, and the variable

ordering must be [x0 u0 x1 u1 …]

The constraints must be in order: [ gap0 lincon0 gap1 lincon1 ]

gap: Ak+1 = Ak xk + Bk uk lincon: yk= Ck xk + Dk uk

A0 B0 -I
C0 D0
       A1 B1 -I
       C1 D1

where I must be a diagonal sparse matrix Either supply all of N, nx, ng, nu options or rely on automatic detection

Extra doc: https://github.com/casadi/casadi/wiki/L_242

>List of available options

Id

Type

Description

N

OT_INT

OCP horizon

hpipm

OT_DICT

Options to be passed to hpipm

inf

OT_DOUBLE

Replace infinities by this amount [default: 1e8]

ng

OT_INTVECTOR

Number of non-dynamic constraints, length N+1

nu

OT_INTVECTOR

Number of controls, length N

nx

OT_INTVECTOR

Number of states, length N+1


1. hpmpc

Interface to HMPC Solver

In order to use this interface, you must:

Decision variables must only by state and control, and the variable

ordering must be [x0 u0 x1 u1 …]

The constraints must be in order: [ gap0 lincon0 gap1 lincon1 ]

gap: Ak+1 = Ak xk + Bk uk lincon: yk= Ck xk + Dk uk

A0 B0 -I
C0 D0
       A1 B1 -I
       C1 D1

where I must be a diagonal sparse matrix Either supply all of N, nx, ng, nu options or rely on automatic detection

Extra doc: https://github.com/casadi/casadi/wiki/L_22p

>List of available options

Id

Type

Description

N

OT_INT

OCP horizon

blasfeo_target

OT_STRING

hpmpc target

inf

OT_DOUBLE

HPMPC cannot handle infinities. Infinities will be replaced by this option’s value.

max_iter

OT_INT

Max number of iterations

mu0

OT_DOUBLE

Max element in cost function as estimate of max multiplier

ng

OT_INTVECTOR

Number of non-dynamic constraints, length N+1

nu

OT_INTVECTOR

Number of controls, length N

nx

OT_INTVECTOR

Number of states, length N+1

print_level

OT_INT

Amount of diagnostic printing [Default: 1].

target

OT_STRING

hpmpc target

tol

OT_DOUBLE

Tolerance in the duality measure

warm_start

OT_BOOL

Use warm-starting


1. ooqp

Interface to the OOQP Solver for quadratic programming The current

implementation assumes that OOQP is configured with the MA27 sparse linear solver.

NOTE: when doing multiple calls to evaluate(), check if you need to

reInit();

Extra doc: https://github.com/casadi/casadi/wiki/L_222

>List of available options

Id

Type

Description

artol

OT_DOUBLE

tolerance as provided with setArTol to OOQP

mutol

OT_DOUBLE

tolerance as provided with setMuTol to OOQP

print_level

OT_INT

Print level. OOQP listens to print_level 0, 10 and 100


1. osqp

Interface to the OSQP Solver for quadratic programming

Extra doc: https://github.com/casadi/casadi/wiki/L_220

Interface to the PROXQP Solver for quadratic programming

Extra doc: https://github.com/casadi/casadi/wiki/L_243

>List of available options

Id

Type

Description

osqp

OT_DICT

const Options to be passed to osqp.

warm_start_dual

OT_BOOL

Use lam_a0 and lam_x0 input to warmstart [Default: truw].

warm_start_primal

OT_BOOL

Use x0 input to warmstart [Default: true].


1. proxqp

>List of available options

Id

Type

Description

proxqp

OT_DICT

const proxqp options.

warm_start_dual

OT_BOOL

Use y and z input to warmstart [Default: true].

warm_start_primal

OT_BOOL

Use x input to warmstart [Default: true].


1. qpoases

Interface to QPOases Solver for quadratic programming

Extra doc: https://github.com/casadi/casadi/wiki/L_22o

>List of available options

Id

Type

Description

CPUtime

OT_DOUBLE

The maximum allowed CPU time in seconds for the whole initialisation (and the actually required one on output). Disabled if unset.

boundRelaxation

OT_DOUBLE

Initial relaxation of bounds to start homotopy and initial value for far bounds.

boundTolerance

OT_DOUBLE

If upper and lower bounds differ less than this tolerance, they are regarded equal, i.e. as equality constraint.

enableCholeskyRefactorisation

OT_INT

Specifies the frequency of a full re-factorisation of projected Hessian matrix: 0: turns them off, 1: uses them at each iteration etc.

enableDriftCorrection

OT_INT

Specifies the frequency of drift corrections: 0: turns them off.

enableEqualities

OT_BOOL

Specifies whether equalities should be treated as always active (True) or not (False)

enableFarBounds

OT_BOOL

Enables the use of far bounds.

enableFlippingBounds

OT_BOOL

Enables the use of flipping bounds.

enableFullLITests

OT_BOOL

Enables condition-hardened (but more expensive) LI test.

enableInertiaCorrection

OT_BOOL

Should working set be repaired when negative curvature is discovered during hotstart.

enableNZCTests

OT_BOOL

Enables nonzero curvature tests.

enableRamping

OT_BOOL

Enables ramping.

enableRegularisation

OT_BOOL

Enables automatic Hessian regularisation.

epsDen

OT_DOUBLE

Denominator tolerance for ratio tests.

epsFlipping

OT_DOUBLE

Tolerance of squared Cholesky diagonal factor which triggers flipping bound.

epsIterRef

OT_DOUBLE

Early termination tolerance for iterative refinement.

epsLITests

OT_DOUBLE

Tolerance for linear independence tests.

epsNZCTests

OT_DOUBLE

Tolerance for nonzero curvature tests.

epsNum

OT_DOUBLE

Numerator tolerance for ratio tests.

epsRegularisation

OT_DOUBLE

Scaling factor of identity matrix used for Hessian regularisation.

finalRamping

OT_DOUBLE

Final value for ramping strategy.

growFarBounds

OT_DOUBLE

Factor to grow far bounds.

hessian_type

OT_STRING

Type of Hessian - see qpOASES documentation [UNKNO WN|posdef|semidef|indef|zero |identity]]

initialFarBounds

OT_DOUBLE

Initial size for far bounds.

initialRamping

OT_DOUBLE

Start value for ramping strategy.

initialStatusBounds

OT_STRING

Initial status of bounds at first iteration.

linsol_plugin

OT_STRING

Linear solver plugin

maxDualJump

OT_DOUBLE

Maximum allowed jump in dual variables in linear independence tests.

maxPrimalJump

OT_DOUBLE

Maximum allowed jump in primal variables in nonzero curvature tests.

max_schur

OT_INT

Maximal number of Schur updates [75]

nWSR

OT_INT

The maximum number of working set recalculations to be performed during the initial homotopy. Default is 5(nx + nc)

numRefinementSteps

OT_INT

Maximum number of iterative refinement steps.

numRegularisationSteps

OT_INT

Maximum number of successive regularisation steps.

printLevel

OT_STRING

Defines the amount of text output during QP solution, see Section 5.7

schur

OT_BOOL

Use Schur Complement Approach [false]

sparse

OT_BOOL

Formulate the QP using sparse matrices. [false]

terminationTolerance

OT_DOUBLE

Relative termination tolerance to stop homotopy.


1. sqic

Interface to the SQIC solver for quadratic programming

Extra doc: https://github.com/casadi/casadi/wiki/L_21s


1. superscs

Interface to the SuperSCS solver for conic programming

Joris Gillis, 2019

Extra doc: https://github.com/casadi/casadi/wiki/L_21z

>List of available options

Id

Type

Description

superscs

OT_DICT

Options to be passed to superscs.


1. ipqp

Solves QPs using a Mehrotra predictor-corrector interior point method

Extra doc: https://github.com/casadi/casadi/wiki/L_23c

>List of available options

Id

Type

Description

constr_viol_tol

OT_DOUBLE

Constraint violation tolerance [1e-8].

dual_inf_tol

OT_DOUBLE

Dual feasibility violation tolerance [1e-8]

linear_solver

OT_STRING

A custom linear solver creator function [default: ldl]

linear_solver_options

OT_DICT

Options to be passed to the linear solver

max_iter

OT_INT

Maximum number of iterations [1000].

min_lam

OT_DOUBLE

Smallest multiplier treated as inactive for the initial active set [0].

print_header

OT_BOOL

Print header [true].

print_info

OT_BOOL

Print info [true].

print_iter

OT_BOOL

Print iterations [true].


1. nlpsol
Solve QPs using an Nlpsol Use the ‘nlpsol’ option to specify the NLP solver

to use.

Extra doc: https://github.com/casadi/casadi/wiki/L_235

>List of available options

Id

Type

Description

nlpsol

OT_STRING

Name of solver.

nlpsol_options

OT_DICT

Options to be passed to solver.


1. qrqp

Solve QPs using an active-set method

Extra doc: https://github.com/casadi/casadi/wiki/L_22y

>List of available options

Id

Type

Description

constr_viol_tol

OT_DOUBLE

Constraint violation tolerance [1e-8].

dual_inf_tol

OT_DOUBLE

Dual feasibility violation tolerance [1e-8]

max_iter

OT_INT

Maximum number of iterations [1000].

min_lam

OT_DOUBLE

Smallest multiplier treated as inactive for the initial active set [0].

print_header

OT_BOOL

Print header [true].

print_info

OT_BOOL

Print info [true].

print_iter

OT_BOOL

Print iterations [true].

print_lincomb

OT_BOOL

Print dependant linear combinations of constraints [false]. Printed numbers are 0-based indices into the vector of [simple bounds;linear bounds]

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_21n

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/conic.hpp#L43

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/conic.cpp#L43-L46

3.3. Integrator

integrator(*args)

[INTERNAL]

integrator(str name, str solver, dict:SX dae, dict opts) -> Function
integrator(str name, str solver, dict:MX dae, dict opts) -> Function
integrator(str name, str solver, Function dae, dict opts) -> Function
integrator(str name, str solver, dict:SX dae, float t0, [float] tout, dict opts) -> Function
integrator(str name, str solver, dict:SX dae, float t0, float tf, dict opts) -> Function
integrator(str name, str solver, dict:MX dae, float t0, [float] tout, dict opts) -> Function
integrator(str name, str solver, dict:MX dae, float t0, float tf, dict opts) -> Function
integrator(str name, str solver, Function dae, float t0, [float] tout, dict opts) -> Function
integrator(str name, str solver, Function dae, float t0, float tf, dict opts) -> Function

integrator(str name, str solver, dict:SX dae, dict opts)

Create an ODE/DAE integrator Solves an initial value problem (IVP) coupled to a terminal value problem with differential equation given as an implicit

ODE coupled to an algebraic equation and a set of

quadratures:

Initial conditions at t=t0
x(t0)  = x0
q(t0)  = 0

Forward integration from t=t0 to t=tf
der(x) = function(x, z, p, t)                  Forward ODE
0 = fz(x, z, p, t)                  Forward algebraic equations
der(q) = fq(x, z, p, t)                  Forward quadratures

Terminal conditions at t=tf
rx(tf)  = rx0
rq(tf)  = 0

Backward integration from t=tf to t=t0
der(rx) = gx(rx, rz, rp, x, z, p, t)        Backward ODE
0 = gz(rx, rz, rp, x, z, p, t)        Backward algebraic equations
der(rq) = gq(rx, rz, rp, x, z, p, t)        Backward quadratures

where we assume that both the forward and backwards integrations are index-1
(i.e. dfz/dz, dgz/drz are invertible) and furthermore that
gx, gz and gq have a linear dependency on rx, rz and rp.

General information

>List of available options

Id

Type

Description

Used in

ad_weight

OT_DOUBLE

Weighting factor for derivative calculation.When there is an option of either using forward or reverse mode directional derivatives, the condition ad_wei ght*nf<=(1- ad_weight)*na is used where nf and na are estimates of the number of forward/reverse mode directional derivatives needed. By default, ad_weight is calculated automatically, but this can be overridden by setting this option. In particular, 0 means forcing forward mode and 1 forcing reverse mode. Leave unset for (class specific) heuristics.

casadi::Function Internal

ad_weight_sp

OT_DOUBLE

Weighting factor for sparsity pattern calculation calc ulation.Override s default behavior. Set to 0 and 1 to force forward and reverse mode respectively. Cf. option “ad_weight”. When set to -1, sparsity is completely ignored and dense matrices are used.

casadi::Function Internal

always_inline

OT_BOOL

Force inlining.

casadi::Function Internal

augmented_option s

OT_DICT

Options to be passed down to the augmented integrator, if one is constructed.

casadi::Integrat or

cache

OT_DICT

Prepopulate the function cache. Default: empty

casadi::Function Internal

common_options

OT_DICT

Options for auto-generated functions

casadi::OracleFu nction

compiler

OT_STRING

Just-in-time compiler plugin to be used.

casadi::Function Internal

custom_jacobian

OT_FUNCTION

Override CasADi’s AD. Use together with ‘jac_penalty’: 0. Note: Highly experimental. Syntax may break often.

casadi::Function Internal

der_options

OT_DICT

Default options to be used to populate forward_options, reverse_options, and jacobian_options before those options are merged in.

casadi::Function Internal

derivative_of

OT_FUNCTION

The function is a derivative of another function. The type of derivative (directional derivative, Jacobian) is inferred from the function name.

casadi::Function Internal

dump

OT_BOOL

Dump function to file upon first evaluation. [false]

casadi::Function Internal

dump_dir

OT_STRING

Directory to dump inputs/outputs to. Make sure the directory exists [.]

casadi::Function Internal

dump_format

OT_STRING

Choose file format to dump matrices. See DM.from_file [mtx]

casadi::Function Internal

dump_in

OT_BOOL

Dump numerical values of inputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

dump_out

OT_BOOL

Dump numerical values of outputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

enable_fd

OT_BOOL

Enable derivative calculation by finite differencing. [default: false]]

casadi::Function Internal

enable_forward

OT_BOOL

Enable derivative calculation using generated functions for Jacobian-times- vector products - typically using forward mode AD - if available. [default: true]

casadi::Function Internal

enable_jacobian

OT_BOOL

Enable derivative calculation using generated functions for Jacobians of all differentiable outputs with respect to all differentiable inputs - if available. [default: true]

casadi::Function Internal

enable_reverse

OT_BOOL

Enable derivative calculation using generated functions for transposed Jacobian-times- vector products - typically using reverse mode AD - if available. [default: true]

casadi::Function Internal

error_on_fail

OT_BOOL

Throw exceptions when function evaluation fails (default true).

casadi::ProtoFun ction

expand

OT_BOOL

Replace MX with SX expressions in problem formulation [false]

casadi::Integrat or

external_transfo rm

OT_VECTORVECTOR

List of external _transform instruction arguments. Default: empty

casadi::Function Internal

fd_method

OT_STRING

Method for finite differencing [default ‘central’]

casadi::Function Internal

fd_options

OT_DICT

Options to be passed to the finite difference instance

casadi::Function Internal

forward_options

OT_DICT

Options to be passed to a forward mode constructor

casadi::Function Internal

gather_stats

OT_BOOL

Deprecated option (ignored): Statistics are now always collected.

casadi::Function Internal

grid

OT_DOUBLEVECTOR

[DEPRECATED] Time grid

casadi::Integrat or

input_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

inputs_check

OT_BOOL

Throw exceptions when the numerical values of the inputs don’t make sense

casadi::Function Internal

is_diff_in

OT_BOOLVECTOR

Indicate for each input if it should be differentiable.

casadi::Function Internal

is_diff_out

OT_BOOLVECTOR

Indicate for each output if it should be differentiable.

casadi::Function Internal

jac_penalty

OT_DOUBLE

When requested for a number of forward/reverse directions, it may be cheaper to compute first the full jacobian and then multiply with seeds, rather than obtain the requested directions in a straightforward manner. Casadi uses a heuristic to decide which is cheaper. A high value of ‘jac_penalty’ makes it less likely for the heurstic to chose the full Jacobian strategy. The special value -1 indicates never to use the full Jacobian strategy

casadi::Function Internal

jacobian_options

OT_DICT

Options to be passed to a Jacobian constructor

casadi::Function Internal

jit

OT_BOOL

Use just-in-time compiler to speed up the evaluation

casadi::Function Internal

jit_cleanup

OT_BOOL

Cleanup up the temporary source file that jit creates. Default: true

casadi::Function Internal

jit_name

OT_STRING

The file name used to write out code. The actual file names used depend on ‘jit_t emp_suffix’ and include extensions. Default: ‘jit_tmp’

casadi::Function Internal

jit_options

OT_DICT

Options to be passed to the jit compiler.

casadi::Function Internal

jit_serialize

OT_STRING

Specify behaviour when serializing a jitted function: SOURCE|link|embe d.

casadi::Function Internal

jit_temp_suffix

OT_BOOL

Use a temporary (seemingly random) filename suffix for generated code and libraries. This is desired for thread- safety. This behaviour may defeat caching compiler wrappers. Default: true

casadi::Function Internal

max_io

OT_INT

Acceptable number of inputs and outputs. Warn if exceeded.

casadi::Function Internal

max_num_dir

OT_INT

Specify the maximum number of directions for derivative functions. Overrules the builtin optimize d_num_dir.

casadi::Function Internal

monitor

OT_STRINGVECTOR

Set of user problem functions to be monitored

casadi::OracleFu nction

nadj

OT_INT

Number of adjoint sensitivities to be calculated [0]

casadi::Integrat or

never_inline

OT_BOOL

Forbid inlining.

casadi::Function Internal

nfwd

OT_INT

Number of forward sensitivities to be calculated [0]

casadi::Integrat or

number_of_finite _elements

OT_INT

Target number of finite elements. The actual number may be higher to accommodate all output times

casadi::Integrat or

output_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

output_t0

OT_BOOL

[DEPRECATED] Output the state at the initial time

casadi::Integrat or

post_expand

OT_BOOL

After construction, expand this Function . Default: False

casadi::Function Internal

post_expand_opti ons

OT_DICT

Options to be passed to post- construction expansion. Default: empty

casadi::Function Internal

print_in

OT_BOOL

Print numerical values of inputs [default: false]

casadi::Function Internal

print_out

OT_BOOL

Print numerical values of outputs [default: false]

casadi::Function Internal

print_stats

OT_BOOL

Print out statistics after integration

casadi::Integrat or

print_time

OT_BOOL

print information about execution time. Implies record_time.

casadi::ProtoFun ction

record_time

OT_BOOL

record information about execution time, for retrieval with stats().

casadi::ProtoFun ction

regularity_check

OT_BOOL

Throw exceptions when NaN or Inf appears during evaluation

casadi::ProtoFun ction

reverse_options

OT_DICT

Options to be passed to a reverse mode constructor

casadi::Function Internal

rootfinder

OT_STRING

An implicit function solver

casadi::Integrat or

rootfinder_optio ns

OT_DICT

Options to be passed to the NLP Solver

casadi::Integrat or

show_eval_warnin gs

OT_BOOL

Show warnings generated from function evaluations [true]

casadi::OracleFu nction

simplify

OT_BOOL

Implement as MX Function (codege neratable/serial izable) default: false

casadi::Integrat or

simplify_options

OT_DICT

Any options to pass to simplified form Function constructor

casadi::Integrat or

specific_options

OT_DICT

Options for specific auto- generated functions, overwriting the defaults from common_options. Nested dictionary.

casadi::OracleFu nction

t0

OT_DOUBLE

[DEPRECATED] Beginning of the time horizon

casadi::Integrat or

tf

OT_DOUBLE

[DEPRECATED] End of the time horizon

casadi::Integrat or

user_data

OT_VOIDPTR

A user-defined field that can be used to identify the function or pass additional information

casadi::Function Internal

verbose

OT_BOOL

Verbose evaluation for debugging

casadi::ProtoFun ction

>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 7)

Full name

Short

Description

INTEGRATOR_X0

x0

Differential state at the initial time.

INTEGRATOR_Z0

z0

Initial guess for the algebraic variable at the initial time.

INTEGRATOR_P

p

Parameters.

INTEGRATOR_U

u

Piecewise constant control, a new control interval starts at each output time.

INTEGRATOR_ADJ_XF

adj_xf

Adjoint seeds corresponding to the states at the output times.

INTEGRATOR_ADJ_ZF

adj_zf

Adjoint seeds corresponding to the algebraic variables at the output times.

INTEGRATOR_ADJ_QF

adj_qf

Adjoint seeds corresponding to the quadratures at the output times.

>Output scheme: casadi::IntegratorOutput (INTEGRATOR_NUM_OUT = 7)

Full name

Short

Description

INTEGRATOR_XF

xf

Differential state at all output times.

INTEGRATOR_ZF

zf

Algebraic variable at all output times.

INTEGRATOR_QF

qf

Quadrature state at all output times.

INTEGRATOR_ADJ_X0

adj_x0

Adjoint sensitivities corresponding to the initial state.

INTEGRATOR_ADJ_Z0

adj_z0

Adjoint sensitivities corresponding to the algebraic variable guess.

INTEGRATOR_ADJ_P

adj_p

Adjoint sensitivities corresponding to the parameter vector.

INTEGRATOR_ADJ_U

adj_u

Adjoint sensitivities corresponding to the control vector.

List of plugins - cvodes

  • idas

  • collocation

  • rk

Note: some of the plugins in this list might not be available on your

system. Also, there might be extra plugins available to you that are not listed here. You can obtain their documentation with Integrator.doc(“myextraplugin”)


1. cvodes

Interface to CVodes from the Sundials suite.

A call to evaluate will integrate to the end.

You can retrieve the entire state trajectory as follows, after the evaluate

call: Call reset. Then call integrate(t_i) and getOuput for a series of

times t_i.

Extra doc: https://github.com/casadi/casadi/wiki/L_228

>List of available options

Id

Type

Description

abstol

OT_DOUBLE

Absolute tolerence for the IVP solution

always_recalculate_jacobian

OT_BOOL

Recalculate Jacobian before factorizations, even if Jacobian is current [default: true]

disable_internal_warnings

OT_BOOL

Disable SUNDIALS internal warning messages

fsens_all_at_once

OT_BOOL

Calculate all right hand sides of the sensitivity equations at once

fsens_err_con

OT_BOOL

include the forward sensitivities in all error controls

interpolation_type

OT_STRING

Type of interpolation for the adjoint sensitivities

linear_multistep_method

OT_STRING

Integrator scheme: BDF|adams

linear_solver

OT_STRING

A custom linear solver creator function [default: qr]

linear_solver_options

OT_DICT

Options to be passed to the linear solver

max_krylov

OT_INT

Maximum Krylov subspace size

max_multistep_order

OT_INT

Maximum order for the (variable-order) multistep method

max_num_steps

OT_INT

Maximum number of integrator steps

max_order

OT_DOUBLE

Maximum order

max_step_size

OT_DOUBLE

Max step size [default: 0/inf]

min_step_size

OT_DOUBLE

Min step size [default: 0/0.0]

newton_scheme

OT_STRING

Linear solver scheme in the Newton method: DIRECT|gmres|bcgstab|tfqmr

nonlin_conv_coeff

OT_DOUBLE

Coefficient in the nonlinear convergence test

nonlinear_solver_iteration

OT_STRING

Nonlinear solver type: NEWTON|functional

quad_err_con

OT_BOOL

Should the quadratures affect the step size control

reltol

OT_DOUBLE

Relative tolerence for the IVP solution

scale_abstol

OT_BOOL

Scale absolute tolerance by nominal value

second_order_correction

OT_BOOL

Second order correction in the augmented system Jacobian [true]

sensitivity_method

OT_STRING

Sensitivity method: SIMULTANEOUS|staggered

step0

OT_DOUBLE

initial step size [default: 0/estimated]

steps_per_checkpoint

OT_INT

Number of steps between two consecutive checkpoints

stop_at_end

OT_BOOL

[DEPRECATED] Stop the integrator at the end of the interval

use_preconditioner

OT_BOOL

Precondition the iterative solver [default: true]


1. idas

Interface to IDAS from the Sundials suite.

Extra doc: https://github.com/casadi/casadi/wiki/L_225

>List of available options

Id

Type

Description

abstol

OT_DOUBLE

Absolute tolerence for the IVP solution

abstolv

OT_DOUBLEVECTOR

Absolute tolerarance for each component

calc_ic

OT_BOOL

Use IDACalcIC to get consistent initial conditions.

calc_icB

OT_BOOL

Use IDACalcIC to get consistent initial conditions for backwards system [default: equal to calc_ic].

cj_scaling

OT_BOOL

IDAS scaling on cj for the user-defined linear solver module

constraints

OT_INTVECTOR

Constrain the solution y=[x,z]. 0 (default): no constraint on yi, 1: yi >= 0.0, -1: yi <= 0.0, 2: yi > 0.0, -2: yi < 0.0.

disable_internal_warnings

OT_BOOL

Disable SUNDIALS internal warning messages

first_time

OT_DOUBLE

First requested time as a fraction of the time interval

fsens_err_con

OT_BOOL

include the forward sensitivities in all error controls

init_xdot

OT_DOUBLEVECTOR

Initial values for the state derivatives

interpolation_type

OT_STRING

Type of interpolation for the adjoint sensitivities

linear_solver

OT_STRING

A custom linear solver creator function [default: qr]

linear_solver_options

OT_DICT

Options to be passed to the linear solver

max_krylov

OT_INT

Maximum Krylov subspace size

max_multistep_order

OT_INT

Maximum order for the (variable-order) multistep method

max_num_steps

OT_INT

Maximum number of integrator steps

max_order

OT_DOUBLE

Maximum order

max_step_size

OT_DOUBLE

Maximim step size

newton_scheme

OT_STRING

Linear solver scheme in the Newton method: DIRECT|gmres|bcgstab|tfqmr

nonlin_conv_coeff

OT_DOUBLE

Coefficient in the nonlinear convergence test

quad_err_con

OT_BOOL

Should the quadratures affect the step size control

reltol

OT_DOUBLE

Relative tolerence for the IVP solution

scale_abstol

OT_BOOL

Scale absolute tolerance by nominal value

second_order_correction

OT_BOOL

Second order correction in the augmented system Jacobian [true]

sensitivity_method

OT_STRING

Sensitivity method: SIMULTANEOUS|staggered

step0

OT_DOUBLE

initial step size [default: 0/estimated]

steps_per_checkpoint

OT_INT

Number of steps between two consecutive checkpoints

stop_at_end

OT_BOOL

[DEPRECATED] Stop the integrator at the end of the interval

suppress_algebraic

OT_BOOL

Suppress algebraic variables in the error testing

use_preconditioner

OT_BOOL

Precondition the iterative solver [default: true]


1. collocation

Fixed-step implicit Runge-Kutta integrator ODE/DAE integrator based on collocation schemes

The method is still under development

Extra doc: https://github.com/casadi/casadi/wiki/L_234

>List of available options

Id

Type

Description

collocation_scheme

OT_STRING

Collocation scheme: radau|legendre

interpolation_order

OT_INT

Order of the interpolating polynomials

number_of_finite_elements

OT_INT

Target number of finite elements. The actual number may be higher to accommodate all output times

rootfinder

OT_STRING

An implicit function solver

rootfinder_options

OT_DICT

Options to be passed to the NLP Solver

simplify

OT_BOOL

Implement as MX Function (codegeneratable/serializable) default: false

simplify_options

OT_DICT

Any options to pass to simplified form Function constructor


1. rk

Fixed-step explicit Runge-Kutta integrator for ODEs Currently implements RK4.

The method is still under development

Extra doc: https://github.com/casadi/casadi/wiki/L_23a

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_21k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/integrator.hpp#L109

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/integrator.cpp#L109-L112



integrator(str name, str solver, dict:MX dae, dict opts)
integrator(str name, str solver, Function dae, dict opts)
integrator(str name, str solver, dict:SX dae, float t0, [float] tout, dict opts)
integrator(str name, str solver, dict:SX dae, float t0, float tf, dict opts)
integrator(str name, str solver, dict:MX dae, float t0, [float] tout, dict opts)
integrator(str name, str solver, dict:MX dae, float t0, float tf, dict opts)
integrator(str name, str solver, Function dae, float t0, [float] tout, dict opts)
integrator(str name, str solver, Function dae, float t0, float tf, dict opts)

[INTERNAL]


3.4. Rootfinding

rootfinder(*args)

[INTERNAL]

rootfinder(str name, str solver, dict:SX rfp, dict opts) -> Function
rootfinder(str name, str solver, dict:MX rfp, dict opts) -> Function
rootfinder(str name, str solver, Function f, dict opts) -> Function

rootfinder(str name, str solver, dict:SX rfp, dict opts)

[INTERNAL]

Create a solver for rootfinding problems Takes a function where one of the inputs is unknown and one of the outputs is a residual function

that is

always zero, defines a new function where the the unknown input has been replaced by a guess for the unknown and the residual output has been replaced by the calculated value for the input.

For a function [y0, y1, …,yi, .., yn] = F(x0, x1, …, xj, …, xm),

where xj is unknown and yi=0, defines a new function [y0, y1, …,xj,

..,

yn] = G(x0, x1, …, xj_guess, …, xm),

xj and yi must have the same dimension and d(yi)/d(xj) must be invertable.

By default, the first input is unknown and the first output is the

residual. General information

>List of available options

Id

Type

Description

Used in

ad_weight

OT_DOUBLE

Weighting factor for derivative calculation.When there is an option of either using forward or reverse mode directional derivatives, the condition ad_wei ght*nf<=(1- ad_weight)*na is used where nf and na are estimates of the number of forward/reverse mode directional derivatives needed. By default, ad_weight is calculated automatically, but this can be overridden by setting this option. In particular, 0 means forcing forward mode and 1 forcing reverse mode. Leave unset for (class specific) heuristics.

casadi::Function Internal

ad_weight_sp

OT_DOUBLE

Weighting factor for sparsity pattern calculation calc ulation.Override s default behavior. Set to 0 and 1 to force forward and reverse mode respectively. Cf. option “ad_weight”. When set to -1, sparsity is completely ignored and dense matrices are used.

casadi::Function Internal

always_inline

OT_BOOL

Force inlining.

casadi::Function Internal

cache

OT_DICT

Prepopulate the function cache. Default: empty

casadi::Function Internal

common_options

OT_DICT

Options for auto-generated functions

casadi::OracleFu nction

compiler

OT_STRING

Just-in-time compiler plugin to be used.

casadi::Function Internal

constraints

OT_INTVECTOR

Constrain the unknowns. 0 (default): no constraint on ui, 1: ui >= 0.0, -1: ui <= 0.0, 2: ui > 0.0, -2: ui < 0.0.

casadi::Rootfind er

custom_jacobian

OT_FUNCTION

Override CasADi’s AD. Use together with ‘jac_penalty’: 0. Note: Highly experimental. Syntax may break often.

casadi::Function Internal

der_options

OT_DICT

Default options to be used to populate forward_options, reverse_options, and jacobian_options before those options are merged in.

casadi::Function Internal

derivative_of

OT_FUNCTION

The function is a derivative of another function. The type of derivative (directional derivative, Jacobian) is inferred from the function name.

casadi::Function Internal

dump

OT_BOOL

Dump function to file upon first evaluation. [false]

casadi::Function Internal

dump_dir

OT_STRING

Directory to dump inputs/outputs to. Make sure the directory exists [.]

casadi::Function Internal

dump_format

OT_STRING

Choose file format to dump matrices. See DM.from_file [mtx]

casadi::Function Internal

dump_in

OT_BOOL

Dump numerical values of inputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

dump_out

OT_BOOL

Dump numerical values of outputs to file (readable with DM.from_file ) [default: false]

casadi::Function Internal

enable_fd

OT_BOOL

Enable derivative calculation by finite differencing. [default: false]]

casadi::Function Internal

enable_forward

OT_BOOL

Enable derivative calculation using generated functions for Jacobian-times- vector products - typically using forward mode AD - if available. [default: true]

casadi::Function Internal

enable_jacobian

OT_BOOL

Enable derivative calculation using generated functions for Jacobians of all differentiable outputs with respect to all differentiable inputs - if available. [default: true]

casadi::Function Internal

enable_reverse

OT_BOOL

Enable derivative calculation using generated functions for transposed Jacobian-times- vector products - typically using reverse mode AD - if available. [default: true]

casadi::Function Internal

error_on_fail

OT_BOOL

Throw exceptions when function evaluation fails (default true).

casadi::ProtoFun ction

expand

OT_BOOL

Replace MX with SX expressions in problem formulation [false]

casadi::OracleFu nction

external_transfo rm

OT_VECTORVECTOR

List of external _transform instruction arguments. Default: empty

casadi::Function Internal

fd_method

OT_STRING

Method for finite differencing [default ‘central’]

casadi::Function Internal

fd_options

OT_DICT

Options to be passed to the finite difference instance

casadi::Function Internal

forward_options

OT_DICT

Options to be passed to a forward mode constructor

casadi::Function Internal

gather_stats

OT_BOOL

Deprecated option (ignored): Statistics are now always collected.

casadi::Function Internal

implicit_input

OT_INT

Index of the input that corresponds to the actual root- finding

casadi::Rootfind er

implicit_output

OT_INT

Index of the output that corresponds to the actual root- finding

casadi::Rootfind er

input_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

inputs_check

OT_BOOL

Throw exceptions when the numerical values of the inputs don’t make sense

casadi::Function Internal

is_diff_in

OT_BOOLVECTOR

Indicate for each input if it should be differentiable.

casadi::Function Internal

is_diff_out

OT_BOOLVECTOR

Indicate for each output if it should be differentiable.

casadi::Function Internal

jac_penalty

OT_DOUBLE

When requested for a number of forward/reverse directions, it may be cheaper to compute first the full jacobian and then multiply with seeds, rather than obtain the requested directions in a straightforward manner. Casadi uses a heuristic to decide which is cheaper. A high value of ‘jac_penalty’ makes it less likely for the heurstic to chose the full Jacobian strategy. The special value -1 indicates never to use the full Jacobian strategy

casadi::Function Internal

jacobian_functio n

OT_FUNCTION

Function object for calculating the Jacobian (autogenerated by default)

casadi::Rootfind er

jacobian_options

OT_DICT

Options to be passed to a Jacobian constructor

casadi::Function Internal

jit

OT_BOOL

Use just-in-time compiler to speed up the evaluation

casadi::Function Internal

jit_cleanup

OT_BOOL

Cleanup up the temporary source file that jit creates. Default: true

casadi::Function Internal

jit_name

OT_STRING

The file name used to write out code. The actual file names used depend on ‘jit_t emp_suffix’ and include extensions. Default: ‘jit_tmp’

casadi::Function Internal

jit_options

OT_DICT

Options to be passed to the jit compiler.

casadi::Function Internal

jit_serialize

OT_STRING

Specify behaviour when serializing a jitted function: SOURCE|link|embe d.

casadi::Function Internal

jit_temp_suffix

OT_BOOL

Use a temporary (seemingly random) filename suffix for generated code and libraries. This is desired for thread- safety. This behaviour may defeat caching compiler wrappers. Default: true

casadi::Function Internal

linear_solver

OT_STRING

User-defined linear solver class. Needed for sensitivities.

casadi::Rootfind er

linear_solver_op tions

OT_DICT

Options to be passed to the linear solver.

casadi::Rootfind er

max_io

OT_INT

Acceptable number of inputs and outputs. Warn if exceeded.

casadi::Function Internal

max_num_dir

OT_INT

Specify the maximum number of directions for derivative functions. Overrules the builtin optimize d_num_dir.

casadi::Function Internal

monitor

OT_STRINGVECTOR

Set of user problem functions to be monitored

casadi::OracleFu nction

never_inline

OT_BOOL

Forbid inlining.

casadi::Function Internal

output_scheme

OT_STRINGVECTOR

Deprecated option (ignored)

casadi::Function Internal

post_expand

OT_BOOL

After construction, expand this Function . Default: False

casadi::Function Internal

post_expand_opti ons

OT_DICT

Options to be passed to post- construction expansion. Default: empty

casadi::Function Internal

print_in

OT_BOOL

Print numerical values of inputs [default: false]

casadi::Function Internal

print_out

OT_BOOL

Print numerical values of outputs [default: false]

casadi::Function Internal

print_time

OT_BOOL

print information about execution time. Implies record_time.

casadi::ProtoFun ction

record_time

OT_BOOL

record information about execution time, for retrieval with stats().

casadi::ProtoFun ction

regularity_check

OT_BOOL

Throw exceptions when NaN or Inf appears during evaluation

casadi::ProtoFun ction

reverse_options

OT_DICT

Options to be passed to a reverse mode constructor

casadi::Function Internal

show_eval_warnin gs

OT_BOOL

Show warnings generated from function evaluations [true]

casadi::OracleFu nction

specific_options

OT_DICT

Options for specific auto- generated functions, overwriting the defaults from common_options. Nested dictionary.

casadi::OracleFu nction

user_data

OT_VOIDPTR

A user-defined field that can be used to identify the function or pass additional information

casadi::Function Internal

verbose

OT_BOOL

Verbose evaluation for debugging

casadi::ProtoFun ction

>Input scheme: casadi::RootfinderInput (ROOTFINDER_NUM_IN = 2)

Full name

Short

Description

ROOTFINDER_X0

x0

Initial guess for the solution.

ROOTFINDER_P

p

Parameters.

>Output scheme: casadi::RootfinderOutput (ROOTFINDER_NUM_OUT = 1)

Full name

Short

Description

ROOTFINDER_X

x

Solution to the system of equations.

List of plugins - kinsol

  • fast_newton

  • nlpsol

  • newton

Note: some of the plugins in this list might not be available on your

system. Also, there might be extra plugins available to you that are not listed here. You can obtain their documentation with Rootfinder.doc(“myextraplugin”)


1. kinsol

KINSOL interface from the Sundials suite

Extra doc: https://github.com/casadi/casadi/wiki/L_226

>List of available options

Id

Type

Description

abstol

OT_DOUBLE

Stopping criterion tolerance

disable_internal_warnings

OT_BOOL

Disable KINSOL internal warning messages

exact_jacobian

OT_BOOL

Use exact Jacobian information

f_scale

OT_DOUBLEVECTOR

Equation scaling factors

iterative_solver

OT_STRING

gmres|bcgstab|tfqmr

linear_solver_type

OT_STRING

dense|banded|iterative|use r_defined

lower_bandwidth

OT_INT

Lower bandwidth for banded linear solvers

max_iter

OT_INT

Maximum number of Newton iterations. Putting 0 sets the default value of KinSol.

max_krylov

OT_INT

Maximum Krylov space dimension

pretype

OT_STRING

Type of preconditioner

print_level

OT_INT

Verbosity level

strategy

OT_STRING

Globalization strategy

u_scale

OT_DOUBLEVECTOR

Variable scaling factors

upper_bandwidth

OT_INT

Upper bandwidth for banded linear solvers

use_preconditioner

OT_BOOL

Precondition an iterative solver


1. fast_newton

Implements simple newton iterations to solve an implicit function.

Extra doc: https://github.com/casadi/casadi/wiki/L_237

>List of available options

Id

Type

Description

abstol

OT_DOUBLE

Stopping criterion tolerance on ||g||__inf)

abstolStep

OT_DOUBLE

Stopping criterion tolerance on step size

max_iter

OT_INT

Maximum number of Newton iterations to perform before returning.


1. nlpsol


1. newton

Implements simple newton iterations to solve an implicit function.

Extra doc: https://github.com/casadi/casadi/wiki/L_236

>List of available options

Id

Type

Description

abstol

OT_DOUBLE

Stopping criterion tolerance on max(|F|)

abstolStep

OT_DOUBLE

Stopping criterion tolerance on step size

line_search

OT_BOOL

Enable line-search (default: true)

max_iter

OT_INT

Maximum number of Newton iterations to perform before returning.

print_iteration

OT_BOOL

Print information about each iteration

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_21r

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/rootfinder.hpp#L96

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/rootfinder.cpp#L96-L99



rootfinder(str name, str solver, dict:MX rfp, dict opts)
rootfinder(str name, str solver, Function f, dict opts)

[INTERNAL]


3.5. Linear systems

class Linsol(*args)

[INTERNAL]

Linear solver.

Create a solver for linear systems of equations Solves the linear system A*X = B or A^T*X = B for X with A square and non-singular

If A is structurally singular, an error will be thrown during init. If

A is numerically singular, the prepare step will fail.

General informationList of plugins - csparsecholesky

  • csparse

  • ma27

  • lapacklu

  • lapackqr

  • mumps

  • ldl

  • qr

  • tridiag

  • symbolicqr

Note: some of the plugins in this list might not be available on your

system. Also, there might be extra plugins available to you that are not listed here. You can obtain their documentation with Linsol.doc(“myextraplugin”)


1. csparsecholesky

Linsol with CSparseCholesky Interface

Extra doc: https://github.com/casadi/casadi/wiki/L_21u


1. csparse

Linsol with CSparse Interface

Extra doc: https://github.com/casadi/casadi/wiki/L_21t


1. ma27

Interface to the sparse direct linear solver MA27 Works for symmetric

indefinite systems Partly adopted from qpOASES 3.2 Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_229


1. lapacklu

This class solves the linear system A.x=b by making an LU factorization of A: A = L.U, with L lower and U upper triangular

Extra doc: https://github.com/casadi/casadi/wiki/L_22h

>List of available options

Id

Type

Description

allow_equilibration_failure

OT_BOOL

Non-fatal error when equilibration fails

equilibration

OT_BOOL

Equilibrate the matrix


1. lapackqr

This class solves the linear system A.x=b by making an QR factorization of A: A = Q.R, with Q orthogonal and R upper triangular

Extra doc: https://github.com/casadi/casadi/wiki/L_22g

>List of available options

Id

Type

Description

max_nrhs

OT_INT

Maximum number of right-hand-sides that get processed in a single pass [default:10].


1. mumps

Interface to the sparse direct linear solver MUMPS Works for symmetric indefinite systems Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_22t

>List of available options

Id

Type

Description

posdef

OT_BOOL

Positive definite

symmetric

OT_BOOL

Symmetric matrix


1. ldl

Linear solver using sparse direct LDL factorization

Extra doc: https://github.com/casadi/casadi/wiki/L_233


1. qr

Linear solver using sparse direct QR factorization

Extra doc: https://github.com/casadi/casadi/wiki/L_22z


1. tridiag

Linear solver for tridiagonal matrices

Extra doc: https://github.com/casadi/casadi/wiki/L_22v


1. symbolicqr

Linear solver for sparse least-squares problems Inspired from https://github.com/scipy/scipy/blob/v0.14.0/scipy/sparse/linalg/isolve/lsqr.py#L96

Extra doc: https://github.com/casadi/casadi/wiki/L_230

Linsol based on QR factorization with sparsity pattern based reordering without partial pivoting

Extra doc: https://github.com/casadi/casadi/wiki/L_231

>List of available options

Id

Type

Description

fopts

OT_DICT

Options to be passed to generated function objects

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_1kh

C++ includes: linsol.hpp

static doc(*args)
doc(str name) -> str
static has_plugin(*args)
has_plugin(str name) -> bool
static load_plugin(*args)
load_plugin(str name)
neig(*args)

[INTERNAL]

neig(self, DM A) -> int

Number of negative eigenvalues.

Not available for all solvers

Extra doc: https://github.com/casadi/casadi/wiki/L_1kk

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L119

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L165-L170

nfact(*args)

[INTERNAL]

nfact(self, DM A)

Numeric factorization of the linear system.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L106

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L126-L129

plugin_name(*args)

[INTERNAL]

plugin_name(self) -> str

Query plugin name.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L97

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L64-L66

rank(*args)

[INTERNAL]

 rank(self, DM A) -> int

Matrix rank.

Not available for all solvers

Extra doc: https://github.com/casadi/casadi/wiki/L_1kl

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L126

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L176-L181

sfact(*args)

[INTERNAL]

sfact(self, DM A)

Symbolic factorization of the linear system, e.g. selecting pivots.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L103

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L104-L107

solve(*args)

[INTERNAL]

 solve(self, DM A, DM B, bool tr) -> DM
 solve(self, MX A, MX B, bool tr) -> MX

Solve linear system of equations

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L111

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L100-L102


solve(self, DM A, DM B, bool tr)
[INTERNAL]

Solve linear system of equations

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L110

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L72-L98



solve(self, MX A, MX B, bool tr)
[INTERNAL]

Solve linear system of equations

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L111

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L100-L102


sparsity(*args)

[INTERNAL]

sparsity(self) -> Sparsity

Get linear system sparsity.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L100

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L68-L70

stats(*args)

[INTERNAL]

stats(self, int mem) -> dict

Get all statistics obtained at the end of the last evaluate call.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.hpp#L129

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/linsol.cpp#L217-L219

static type_name(*args)
type_name() -> str

4. Advanced

4.1. DaeBuilder

class DaeBuilder(*args)

[INTERNAL]

A symbolic representation of a differential-algebraic equations model.

1. Variables:

t:      independent variable (usually time)
c:      constants
p:      parameters
d:      dependent parameters (time independent)
u:      controls
w:      dependent variables  (time dependent)
x:      differential states
z:      algebraic variables
q:      quadrature states
y:      outputs

1. Equations:

differential equations: \dot{x} ==  ode(...)
algebraic equations:          0 ==  alg(...)
quadrature equations:   \dot{q} == quad(...)
dependent parameters:         d == ddef(d_prev,p)
dependent variables:          w == wdef(w_prev,x,z,u,p,t)
output equations:             y == ydef(...)
initial equations:     init_lhs == init_rhs(...)
events:      when when_cond < 0: when_lhs := when_rhs

Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_5c

C++ includes: dae_builder.hpp

add_aux(*args)

[INTERNAL]

add_aux(self, str name, int n) -> MX

Add an auxiliary variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L320

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L518-L522

add_c(*args)

[INTERNAL]

add_c(self, str name, MX new_cdef) -> MX

Add a new constant.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L302

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L482-L489

add_d(*args)

[INTERNAL]

add_d(self, str name, MX new_ddef) -> MX

Add a new dependent parameter.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L305

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L491-L498

add_fun(*args)

[INTERNAL]

add_fun(self, Function f) -> Function
add_fun(self, str name, Importer compiler, dict opts) -> Function
add_fun(self, str name, [str] arg, [str] res, dict opts) -> Function

Add an external function.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L413

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L770-L773


add_fun(self, Function f)

[INTERNAL] Add an already existing function.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L410

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L751-L758



add_fun(self, str name, [str] arg, [str] res, dict opts)

[INTERNAL] Add a function from loaded expressions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L405

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L760-L768



add_fun(self, str name, Importer compiler, dict opts)

[INTERNAL] Add an external function.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L413

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L770-L773


add_init(*args)

[INTERNAL]

add_init(self, MX lhs, MX rhs)

Add an initial equation.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L323

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L524-L527

add_lc(*args)

[INTERNAL]

add_lc(self, str name, [str] f_out)

Add a named linear combination of output expressions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L445

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L711-L718

add_p(*args)

[INTERNAL]

add_p(self, str name) -> MX

Add a new parameter.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L287

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L437-L444

add_q(*args)

[INTERNAL]

add_q(self, str name) -> MX

Add a new quadrature state.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L299

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L473-L480

add_t(*args)

[INTERNAL]

add_t(self, str name) -> MX

Add an independent variable (time)

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L284

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L430-L435

add_u(*args)

[INTERNAL]

add_u(self, str name) -> MX

Add a new control.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L290

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L446-L453

add_variable(*args)

[INTERNAL]

add_variable(self, MX new_v)
add_variable(self, str name, int n) -> MX
add_variable(self, str name, Sparsity sp) -> MX

Add a new variable from symbolic expressions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L645

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L332-L335


add_variable(self, MX new_v)

[INTERNAL] Add a new variable from symbolic expressions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L645

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L332-L335



add_variable(self, str name, int n)

[INTERNAL] Add a new variable: returns corresponding symbolic expression.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L639

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L322-L324



add_variable(self, str name, Sparsity sp)

[INTERNAL] Add a new variable: returns corresponding symbolic expression.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L642

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L326-L330


add_variable_new(*args)

[INTERNAL]

add_variable_new(self, MX new_v) -> size_t
add_variable_new(self, str name, int n) -> size_t
add_variable_new(self, str name, Sparsity sp) -> size_t

Add a new variable from symbolic expressions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L654

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L347-L351


add_variable_new(self, MX new_v)

[INTERNAL] Add a new variable from symbolic expressions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L654

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L347-L351



add_variable_new(self, str name, int n)

[INTERNAL] Add a new variable: returns corresponding symbolic expression.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L648

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L337-L339



add_variable_new(self, str name, Sparsity sp)

[INTERNAL] Add a new variable: returns corresponding symbolic expression.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L651

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L341-L345


add_w(*args)

[INTERNAL]

add_w(self, str name, MX new_wdef) -> MX

Add a new dependent variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L308

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L500-L507

add_when(*args)

[INTERNAL]

add_when(self, MX cond, MX lhs, MX rhs)

Add a when statement.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L326

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L529-L533

add_x(*args)

[INTERNAL]

add_x(self, str name) -> MX

Add a new differential state.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L293

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L455-L462

add_y(*args)

[INTERNAL]

add_y(self, str name, MX new_ydef) -> MX

Add a new output.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L311

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L509-L516

add_z(*args)

[INTERNAL]

add_z(self, str name) -> MX

Add a new algebraic variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L296

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L464-L471

alg(*args)

[INTERNAL]

alg(self) -> [MX]

Algebraic equations.

Extra doc: https://github.com/casadi/casadi/wiki/L_5i

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L113

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L79-L81

all_variables(*args)

[INTERNAL]

all_variables(self) -> [str]

Get a list of all variables.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L660

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L305-L312

attribute(*args)

[INTERNAL]

attribute(self, str a, [str] name) -> [float]
attribute(self, str a, str name) -> float

Get an attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L599

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L949-L957


attribute(self, str a, str name)

[INTERNAL] Get an attribute, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L555

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L940-L947



attribute(self, str a, [str] name)

[INTERNAL] Get an attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L599

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L949-L957


aux(*args)

[INTERNAL]

aux(self) -> [MX]

Auxiliary variables: Used e.g. to define functions.

Extra doc: https://github.com/casadi/casadi/wiki/L_5v

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L182

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L131-L133

beq(*args)

[INTERNAL]

beq(self, str name) -> MX

Get/set the binding equation for a variable

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L490

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L594-L601

c(*args)

[INTERNAL]

c(self) -> [str]

Named constants.

Extra doc: https://github.com/casadi/casadi/wiki/L_5p

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L148

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L107-L109

causality(*args)

[INTERNAL]

causality(self, str name) -> str

Get/set the causality

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L514

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L663-L665

cdef(*args)

[INTERNAL]

cdef(self) -> [MX]

Definitions of named constants.

Extra doc: https://github.com/casadi/casadi/wiki/L_5q

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L153

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L111-L113

clear_all(*args)

[INTERNAL]

clear_all(self, str v)

Clear all variables of a type.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L333

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L414-L420

clear_in(*args)

[DEPRECATED] Clear input variable: Replaced by clear_all

clear_in(self, str v)

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L371

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L371-L371

create(*args)

[INTERNAL]

create(self, str name, dict opts) -> Function
create(self, str name, [str] name_in, [str] name_out, dict opts) -> Function
create(self, str fname, [str] name_in, [str] name_out, bool sx, bool lifted_calls) -> Function

Load a function from an FMU DLL, standard IO conforming with

simulator.

1. Parameters:

name: Name assigned to the resulting function object

opts: Optional settings

Extra doc: https://github.com/casadi/casadi/wiki/L_6f

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L472

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L742-L749


create(self, str name, dict opts)

[INTERNAL] Load a function from an FMU DLL, standard IO conforming with

simulator.

1. Parameters:

name: Name assigned to the resulting function object

opts: Optional settings

Extra doc: https://github.com/casadi/casadi/wiki/L_6f

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L472

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L742-L749



create(self, str name, [str] name_in, [str] name_out, dict opts)

[INTERNAL] Construct a function object, names provided.

1. Parameters:

name: Name assigned to the resulting function object

name_in: Names of all the inputs

name_out: Names of all the outputs

opts: Optional settings

Extra doc: https://github.com/casadi/casadi/wiki/L_6e

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L460

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L731-L740



create(self, str fname, [str] name_in, [str] name_out, bool sx, bool lifted_calls)

[INTERNAL] Construct a function object, legacy syntax.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L448

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L720-L729


d(*args)

[INTERNAL]

d(self) -> [str]

Dependent parameters.

Extra doc: https://github.com/casadi/casadi/wiki/L_5r

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L158

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L115-L117

ddef(*args)

[INTERNAL]

ddef(self) -> [MX]

Definitions of dependent parameters.

Interdependencies are allowed but must be non-cyclic.

Extra doc: https://github.com/casadi/casadi/wiki/L_5s

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L165

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L119-L121

dependent_fun(*args)

[INTERNAL]

dependent_fun(self, str fname, [str] s_in, [str] s_out) -> Function

Construct a function for evaluating dependent parameters.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L475

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L827-L836

der(*args)

[INTERNAL]

der(self, [str] name) -> [str]
der(self, str name) -> str

Get the time derivative of an expression, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L552

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L568-L581


der(self, [str] name)

[INTERNAL] Get the time derivative of an expression.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L486

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L583-L592



der(self, str name)

[INTERNAL] Get the time derivative of an expression, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L552

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L568-L581


derivatives(*args)

[INTERNAL]

derivatives(self) -> [str]

Model structure: derivatives.

Extra doc: https://github.com/casadi/casadi/wiki/L_62

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L218

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L164-L171

description(*args)

[INTERNAL]

description(self, str name) -> str

Get/set description

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L502

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L635-L637

dimension(*args)

[INTERNAL]

dimension(self, str name) -> [int]

Get the dimensions of a variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L546

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L707-L709

display_unit(*args)

[INTERNAL]

display_unit(self, str name) -> str

Get/set the display unit

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L538

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L695-L697

eliminate_quad(*args)

[INTERNAL]

eliminate_quad(self)

Eliminate quadrature states and turn them into ODE states.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L381

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L248-L254

eliminate_w(*args)

[INTERNAL]

eliminate_w(self)

Eliminate all dependent variables.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L375

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L611-L617

export_fmu(*args)

[INTERNAL]

export_fmu(self, dict opts) -> [str]

Export instance into an FMU.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L442

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L240-L246

fun(*args)

[INTERNAL]

fun(self) -> [Function]
fun(self, str name) -> Function

Get all functions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L423

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L814-L816


fun(self, str name)

[INTERNAL] Get function by name.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L420

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L784-L791



fun(self)

[INTERNAL] Get all functions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L423

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L814-L816


gather_fun(*args)

[INTERNAL]

gather_fun(self, int max_depth)

Collect embedded functions from the expression graph.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L426

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L793-L812

get(*args)

[INTERNAL]

get(self, [str] name) -> [GenericType]
get(self, str name) -> GenericType

Evaluate the values for a set of variables at the initial time.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L636

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1158-L1173


get(self, [str] name)

[INTERNAL] Evaluate the values for a set of variables at the initial time.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L636

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1158-L1173



get(self, str name)

[INTERNAL] Evaluate the values for a set of variables at the initial time, single

value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L594

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1154-L1156


has_fun(*args)

[INTERNAL]

has_fun(self, str name) -> bool

Does a particular function already exist?

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L417

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L775-L782

has_t(*args)

[INTERNAL]

has_t(self) -> bool

Is there a time variable?

Extra doc: https://github.com/casadi/casadi/wiki/L_64

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L231

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L182-L184

has_variable(*args)

[INTERNAL]

has_variable(self, str name) -> bool

Check if a particular variable exists.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L657

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L296-L303

init_lhs(*args)

[INTERNAL]

init_lhs(self) -> [MX]

Initial conditions, left-hand-side.

Extra doc: https://github.com/casadi/casadi/wiki/L_5w

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L187

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L135-L137

init_rhs(*args)

[INTERNAL]

init_rhs(self) -> [MX]

Initial conditions, right-hand-side.

Extra doc: https://github.com/casadi/casadi/wiki/L_5x

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L192

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L139-L141

initial(*args)

[INTERNAL]

initial(self, str name) -> str

Get/set the initial property

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L526

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L679-L681

initial_unknowns(*args)

[INTERNAL]

initial_unknowns(self) -> [str]

Model structure: initial unknowns.

Extra doc: https://github.com/casadi/casadi/wiki/L_63

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L223

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L173-L180

jac_sparsity(*args)

[INTERNAL]

jac_sparsity(self, [str] onames, [str] inames) -> Sparsity

Get Jacobian sparsity.

Extra doc: https://github.com/casadi/casadi/wiki/L_6g

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L668

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1175-L1183

lift(*args)

[INTERNAL]

lift(self, bool lift_shared, bool lift_calls)

Lift problem formulation by extracting shared subexpressions.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L378

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L619-L625

load_fmi_description(*args)

[INTERNAL]

load_fmi_description(self, str filename)

Import problem description from FMI or XML.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L439

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L222-L228

max(*args)

[INTERNAL]

max(self, [str] name) -> [float]
max(self, str name) -> float

Get the upper bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L612

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1019-L1026


max(self, str name)

[INTERNAL] Get the upper bound, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L567

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1010-L1017



max(self, [str] name)

[INTERNAL] Get the upper bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L612

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1019-L1026


min(*args)

[INTERNAL]

min(self, [str] name) -> [float]
min(self, str name) -> float

Get the lower bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L606

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L985-L992


min(self, str name)

[INTERNAL] Get the lower bound, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L561

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L976-L983



min(self, [str] name)

[INTERNAL] Get the lower bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L606

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L985-L992


name(*args)

[INTERNAL]

name(self) -> str

Name of instance.

Extra doc: https://github.com/casadi/casadi/wiki/L_5d

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L86

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L59-L61

nc(*args)

[INTERNAL]

nc(self) -> int

Named constants.

Extra doc: https://github.com/casadi/casadi/wiki/L_6b

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L266

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L210-L212

nd(*args)

[INTERNAL]

nd(self) -> int

Dependent parameters.

Extra doc: https://github.com/casadi/casadi/wiki/L_6c

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L271

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L214-L216

nominal(*args)

[INTERNAL]

nominal(self, [str] name) -> [float]
nominal(self, str name) -> float

Get the nominal value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L618

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1053-L1060


nominal(self, str name)

[INTERNAL] Get the nominal value, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L573

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1044-L1051



nominal(self, [str] name)

[INTERNAL] Get the nominal value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L618

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1053-L1060


np(*args)

[INTERNAL]

np(self) -> int

Parameters.

Extra doc: https://github.com/casadi/casadi/wiki/L_6a

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L261

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L206-L208

nq(*args)

[INTERNAL]

nq(self) -> int

Quadrature states.

Extra doc: https://github.com/casadi/casadi/wiki/L_67

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L246

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L194-L196

nu(*args)

[INTERNAL]

nu(self) -> int

Free controls.

Extra doc: https://github.com/casadi/casadi/wiki/L_69

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L256

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L202-L204

numel(*args)

[INTERNAL]

numel(self, str name) -> int

Get the number of elements of a variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L543

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L703-L705

nw(*args)

[INTERNAL]

nw(self) -> int

Dependent variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_6d

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L276

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L218-L220

nx(*args)

[INTERNAL]

nx(self) -> int

Differential states.

Extra doc: https://github.com/casadi/casadi/wiki/L_65

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L236

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L186-L188

ny(*args)

[INTERNAL]

 ny(self) -> int

Output variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_68

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L251

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L198-L200

nz(*args)

[INTERNAL]

nz(self) -> int

Algebraic variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_66

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L241

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L190-L192

ode(*args)

[INTERNAL]

ode(self) -> [MX]

Ordinary differential equations (ODE)

Extra doc: https://github.com/casadi/casadi/wiki/L_5g

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L103

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L71-L73

oracle(*args)

[INTERNAL]

oracle(self, bool sx, bool elim_w, bool lifted_calls) -> Function

Get the (cached) oracle, SX or MX.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L663

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L818-L825

outputs(*args)

[INTERNAL]

outputs(self) -> [str]

Model structure: outputs.

Extra doc: https://github.com/casadi/casadi/wiki/L_61

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L213

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L155-L162

p(*args)

[INTERNAL]

p(self) -> [str]

Parameters.

Extra doc: https://github.com/casadi/casadi/wiki/L_5o

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L143

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L103-L105

parse_fmi(*args)

[INTERNAL]

parse_fmi(self, str filename)

Import existing problem from FMI/XML

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L433

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L433-L433

provides_directional_derivative(*args)

[INTERNAL]

provides_directional_derivative(self) -> bool

Does the FMU provide support for analytic derivatives.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L436

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L230-L238

prune(*args)

[INTERNAL]

prune(self, bool prune_p, bool prune_u)

Prune unused controls.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L393

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L280-L286

q(*args)

[INTERNAL]

q(self) -> [str]

Quadrature states.

Extra doc: https://github.com/casadi/casadi/wiki/L_5j

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L118

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L83-L85

quad(*args)

[INTERNAL]

quad(self) -> [MX]

Quadrature equations.

Extra doc: https://github.com/casadi/casadi/wiki/L_5k

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L123

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L87-L89

register_c(*args)

[INTERNAL]

register_c(self, str name)
register_d(*args)

[INTERNAL]

register_d(self, str name)
register_p(*args)

[INTERNAL]

register_p(self, str name)
register_q(*args)

[INTERNAL]

register_q(self, str name)
register_t(*args)

[INTERNAL]

register_t(self, str name)
register_u(*args)

[INTERNAL]

register_u(self, str name)
register_w(*args)

[INTERNAL]

register_w(self, str name)
register_x(*args)

[INTERNAL]

register_x(self, str name)
register_y(*args)

[INTERNAL]

register_y(self, str name)
register_z(*args)

[INTERNAL]

register_z(self, str name)
reset(*args)

[INTERNAL]

reset(self)
sanity_check(*args)

[INTERNAL]

sanity_check(self)

Check if dimensions match.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L329

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L551-L557

set(*args)

[INTERNAL]

set(self, [str] name, [float] val)
set(self, [str] name, [str] val)
set(self, str name, float val)
set(self, str name, str val)

Set the current value (string)

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L633

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1145-L1152


set(self, [str] name, [str] val)

[INTERNAL] Set the current value (string)

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L633

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1145-L1152



set(self, str name, float val)
set(self, str name, str val)

[INTERNAL]



set(self, [str] name, [float] val)

[INTERNAL] Set the current value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L630

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1137-L1143


set_alg(*args)

[INTERNAL]

set_alg(self, str name, MX alg_rhs)

Specificy the residual equation for an algebraic variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L317

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L543-L549

set_all(*args)

[INTERNAL]

set_all(self, str v, [str] name)

Set all variables of a type.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L336

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L422-L428

set_attribute(*args)

[INTERNAL]

set_attribute(self, str a, [str] name, [float] val)
set_attribute(self, str a, str name, float val)

Set an attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L602

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L967-L974


set_attribute(self, str a, str name, float val)

[INTERNAL] Set an attribute, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L558

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L959-L965



set_attribute(self, str a, [str] name, [float] val)

[INTERNAL] Set an attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L602

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L967-L974


set_beq(*args)

[INTERNAL]

set_beq(self, str name, MX val)

Get/set the binding equation for a variable

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L491

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L603-L609

set_causality(*args)

[INTERNAL]

set_causality(self, str name, str val)

Get/set the causality

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L515

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L667-L669

set_description(*args)

[INTERNAL]

set_description(self, str name, str val)

Get/set description

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L503

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L639-L641

set_display_unit(*args)

[INTERNAL]

set_display_unit(self, str name, str val)

Get/set the display unit

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L539

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L699-L701

set_initial(*args)

[INTERNAL]

set_initial(self, str name, str val)

Get/set the initial property

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L527

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L683-L685

set_max(*args)

[INTERNAL]

set_max(self, [str] name, [float] val)
set_max(self, str name, float val)

Set the upper bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L615

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1036-L1042


set_max(self, str name, float val)

[INTERNAL] Set the upper bound, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L570

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1028-L1034



set_max(self, [str] name, [float] val)

[INTERNAL] Set the upper bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L615

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1036-L1042


set_min(*args)

[INTERNAL]

set_min(self, [str] name, [float] val)
set_min(self, str name, float val)

Set the lower bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L609

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1002-L1008


set_min(self, str name, float val)

[INTERNAL] Set the lower bound, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L564

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L994-L1000



set_min(self, [str] name, [float] val)

[INTERNAL] Set the lower bound.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L609

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1002-L1008


set_nominal(*args)

[INTERNAL]

set_nominal(self, [str] name, [float] val)
set_nominal(self, str name, float val)

Set the nominal value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L621

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1070-L1076


set_nominal(self, str name, float val)

[INTERNAL] Set the nominal value, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L576

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1062-L1068



set_nominal(self, [str] name, [float] val)

[INTERNAL] Set the nominal value.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L621

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1070-L1076


set_ode(*args)

[INTERNAL]

set_ode(self, str name, MX ode_rhs)

Specify the ordinary differential equation for a state.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L314

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L535-L541

set_q(*args)

[INTERNAL]

set_q(self, [str] name)
set_start(*args)

[INTERNAL]

set_start(self, [str] name, [float] val)
set_start(self, str name, float val)

Set the start attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L627

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1105-L1111


set_start(self, [str] name, [float] val)

[INTERNAL] Set the start attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L627

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1105-L1111



set_start(self, str name, float val)

[INTERNAL] Set the start attribute, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L582

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1097-L1103


set_type(*args)

[INTERNAL]

set_type(self, str name, str val)

Get/set the type

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L509

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L654-L661

set_u(*args)

[INTERNAL]

set_u(self, [str] name)
set_unit(*args)

[INTERNAL]

set_unit(self, str name, str val)

Get/set the unit

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L533

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L691-L693

set_value_reference(*args)

[INTERNAL]

set_value_reference(self, str name, int val)

Get/set value reference

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L497

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L631-L633

set_variability(*args)

[INTERNAL]

set_variability(self, str name, str val)

Get/set the variability

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L521

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L675-L677

set_x(*args)

[INTERNAL]

set_x(self, [str] name)
set_y(*args)

[INTERNAL]

set_y(self, [str] name)
set_z(*args)

[INTERNAL]

set_z(self, [str] name, [str] alg)
sort_d(*args)

[INTERNAL]

sort_d(self)

Sort dependent parameters.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L384

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L256-L262

sort_w(*args)

[INTERNAL]

sort_w(self)

Sort dependent variables.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L387

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L264-L270

sort_z(*args)

[INTERNAL]

sort_z(self, [str] z_order)

Sort algebraic variables.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L390

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L272-L278

start(*args)

[INTERNAL]

start(self, [str] name) -> [float]
start(self, str name) -> float

Get the start attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L624

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1088-L1095


start(self, [str] name)

[INTERNAL] Get the start attribute.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L624

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1088-L1095



start(self, str name)

[INTERNAL] Get the start attribute, single variable.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L579

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L1078-L1086


t(*args)

[INTERNAL]

t(self) -> MX

Independent variable (usually time)

Extra doc: https://github.com/casadi/casadi/wiki/L_5e

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L93

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L63-L65

tear(*args)

[INTERNAL]

tear(self)

Identify iteration variables and residual equations using naming

convention.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L396

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L288-L294

type(*args)

[INTERNAL]

type(self, str name, int fmi_version) -> str

Get/set the type

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L508

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L643-L652

type_name(*args)

[INTERNAL]

type_name(self) -> str

Readable name of the class.

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L74

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L74-L74

u(*args)

[INTERNAL]

u(self) -> [str]

Free controls.

Extra doc: https://github.com/casadi/casadi/wiki/L_5n

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L138

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L99-L101

unit(*args)

[INTERNAL]

unit(self, str name) -> str

Get/set the unit

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L532

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L687-L689

value_reference(*args)

[INTERNAL]

value_reference(self, str name) -> int

Get/set value reference

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L496

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L627-L629

var(*args)

[INTERNAL]

var(self, str name) -> MX

Get variable expression by name

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L481

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L559-L566

variability(*args)

[INTERNAL]

variability(self, str name) -> str

Get/set the variability

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L520

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L671-L673

w(*args)

[INTERNAL]

w(self) -> [str]

Dependent variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_5t

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L170

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L123-L125

wdef(*args)

[INTERNAL]

wdef(self) -> [MX]

Dependent variables and corresponding definitions.

Interdependencies are allowed but must be non-cyclic.

Extra doc: https://github.com/casadi/casadi/wiki/L_5u

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L177

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L127-L129

when_cond(*args)

[INTERNAL]

when_cond(self) -> [MX]

When statement: triggering condition.

Extra doc: https://github.com/casadi/casadi/wiki/L_5y

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L197

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L143-L145

when_lhs(*args)

[INTERNAL]

when_lhs(self) -> [MX]

When statement: left-hand-side.

Extra doc: https://github.com/casadi/casadi/wiki/L_5z

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L202

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L147-L149

when_rhs(*args)

[INTERNAL]

when_rhs(self) -> [MX]

When statement: right-hand-side.

Extra doc: https://github.com/casadi/casadi/wiki/L_60

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L207

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L151-L153

x(*args)

[INTERNAL]

x(self) -> [str]

Differential states.

Extra doc: https://github.com/casadi/casadi/wiki/L_5f

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L98

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L67-L69

y(*args)

[INTERNAL]

 y(self) -> [str]

Output variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_5l

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L128

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L91-L93

ydef(*args)

[INTERNAL]

ydef(self) -> [MX]

Definitions of output variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_5m

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L133

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L95-L97

z(*args)

[INTERNAL]

z(self) -> [str]

Algebraic variables.

Extra doc: https://github.com/casadi/casadi/wiki/L_5h

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.hpp#L108

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/dae_builder.cpp#L75-L77

4.2. Callback

class Callback(*args)

[INTERNAL]

Callback function functionality.

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.

Joris Gillis, Joel Andersson

Extra doc: https://github.com/casadi/casadi/wiki/L_o0

C++ includes: callback.hpp

construct(*args)

[INTERNAL]

construct(self, str name, dict opts)

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.

Extra doc: https://github.com/casadi/casadi/wiki/L_o5

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L78

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L36-L42

eval(*args)

[INTERNAL]

eval(self, [DM] arg) -> [DM]

Evaluate numerically, using temporary matrices and work vectors.

This signature is not thread-safe. For guaranteed thread-safety, use eval_buffer

Extra doc: https://github.com/casadi/casadi/wiki/L_o8

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L106

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L60-L62

eval_buffer(*args)

[INTERNAL]

eval_buffer(self, double const ** arg, [int] sizes_arg, double ** res, [int] sizes_res) -> int

A copy-free low level interface.

In Python, you will be passed two tuples of memoryview objects Note that only the structural nonzeros are present in the memoryview objects/buffers.

Make sure to override has_eval_buffer() to indicate support for this method.

Extra doc: https://github.com/casadi/casadi/wiki/L_o9

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L116

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L53-L56

finalize(*args)

[INTERNAL]

finalize(self)

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.

Extra doc: https://github.com/casadi/casadi/wiki/L_o7

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L98

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L98-L98

get_forward(*args)

[INTERNAL]

get_forward(self, int nfwd, str name, [str] inames, [str] onames, dict opts) -> Function

Return function that calculates forward derivatives.

forward(nfwd) returns a cached instance if available, and calls Function get_forward(casadi_int nfwd) if no cached version is available.

Extra doc: https://github.com/casadi/casadi/wiki/L_oi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L191

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L105-L110

get_jac_sparsity(*args)

[INTERNAL]

get_jac_sparsity(self, int oind, int iind, bool symmetric) -> Sparsity

Return sparsity of Jacobian of all input elements.

with respect to all output elements

Extra doc: https://github.com/casadi/casadi/wiki/L_ok

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L219

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L219-L220

get_jacobian(*args)

[INTERNAL]

get_jacobian(self, str name, [str] inames, [str] onames, dict opts) -> Function

Return Jacobian of all input elements with respect to all output

elements.

Extra doc: https://github.com/casadi/casadi/wiki/L_oh

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L176

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L97-L102

get_n_in(*args)

[INTERNAL]

get_n_in(self) -> int

Get the number of inputs.

This function is called during construction.

Extra doc: https://github.com/casadi/casadi/wiki/L_oa

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L129

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L64-L66

get_n_out(*args)

[INTERNAL]

get_n_out(self) -> int

Get the number of outputs.

This function is called during construction.

Extra doc: https://github.com/casadi/casadi/wiki/L_ob

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L136

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L68-L70

get_name_in(*args)

[INTERNAL]

get_name_in(self, int i) -> str

Get the name of an input.

This function is called during construction.

Extra doc: https://github.com/casadi/casadi/wiki/L_oe

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L157

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L80-L82

get_name_out(*args)

[INTERNAL]

get_name_out(self, int i) -> str

Get the name of an output.

This function is called during construction.

Extra doc: https://github.com/casadi/casadi/wiki/L_of

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L164

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L84-L86

get_reverse(*args)

[INTERNAL]

get_reverse(self, int nadj, str name, [str] inames, [str] onames, dict opts) -> Function

Return function that calculates adjoint derivatives.

reverse(nadj) returns a cached instance if available, and calls Function get_reverse(casadi_int nadj) if no cached version is available.

Extra doc: https://github.com/casadi/casadi/wiki/L_oj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L206

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L117-L122

get_sparsity_in(*args)

[INTERNAL]

get_sparsity_in(self, int i) -> Sparsity

Get the sparsity of an input.

This function is called during construction.

Extra doc: https://github.com/casadi/casadi/wiki/L_oc

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L143

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L72-L74

get_sparsity_out(*args)

[INTERNAL]

get_sparsity_out(self, int i) -> Sparsity

Get the sparsity of an output.

This function is called during construction.

Extra doc: https://github.com/casadi/casadi/wiki/L_od

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L150

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L76-L78

has_eval_buffer(*args)

[INTERNAL]

has_eval_buffer(self) -> bool
Does the Callback class support a copy-free low level interface

?

Extra doc: https://github.com/casadi/casadi/wiki/L_265

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L122

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L57-L59

has_forward(*args)

[INTERNAL]

has_forward(self, int nfwd) -> bool

Return function that calculates forward derivatives.

forward(nfwd) returns a cached instance if available, and calls Function get_forward(casadi_int nfwd) if no cached version is available.

Extra doc: https://github.com/casadi/casadi/wiki/L_oi

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L190

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L112-L114

has_jac_sparsity(*args)

[INTERNAL]

has_jac_sparsity(self, int oind, int iind) -> bool

Return sparsity of Jacobian of all input elements.

with respect to all output elements

Extra doc: https://github.com/casadi/casadi/wiki/L_ok

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L218

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L218-L218

has_jacobian(*args)

[INTERNAL]

has_jacobian(self) -> bool

Return Jacobian of all input elements with respect to all output

elements.

Extra doc: https://github.com/casadi/casadi/wiki/L_oh

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L175

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L92-L94

has_reverse(*args)

[INTERNAL]

has_reverse(self, int nadj) -> bool

Return function that calculates adjoint derivatives.

reverse(nadj) returns a cached instance if available, and calls Function get_reverse(casadi_int nadj) if no cached version is available.

Extra doc: https://github.com/casadi/casadi/wiki/L_oj

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L205

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L124-L126

init(*args)

[INTERNAL]

init(self)

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.

Extra doc: https://github.com/casadi/casadi/wiki/L_o6

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L88

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L88-L88

static type_name(*args)
type_name() -> str
uses_output(*args)

[INTERNAL]

uses_output(self) -> bool

Do the derivative functions need nondifferentiated outputs?

Extra doc: https://github.com/casadi/casadi/wiki/L_og

Doc source: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.hpp#L169

Implementation: https://github.com/casadi/casadi/blob/develop/casadi/core/callback.cpp#L88-L90

4.3. GlobalOptions

class GlobalOptions(*args)

[INTERNAL]

Collects global CasADi options.

Note to developers: use sparingly. Global options are - in general - a rather bad idea

this class must never be instantiated. Access its static members directly

Joris Gillis

Extra doc: https://github.com/casadi/casadi/wiki/L_23m

C++ includes: global_options.hpp

static getCasadiIncludePath(*args)
getCasadiIncludePath() -> str
static getCasadiPath(*args)
getCasadiPath() -> str
static getHierarchicalSparsity(*args)
getHierarchicalSparsity() -> bool
static getMaxNumDir(*args)
getMaxNumDir() -> int
static getSimplificationOnTheFly(*args)
getSimplificationOnTheFly() -> bool
static setCasadiIncludePath(*args)
setCasadiIncludePath(str path)
static setCasadiPath(*args)
setCasadiPath(str path)
static setHierarchicalSparsity(*args)
setHierarchicalSparsity(bool flag)
static setMaxNumDir(*args)
setMaxNumDir(int ndir)
static setSimplificationOnTheFly(*args)
setSimplificationOnTheFly(bool flag)

4.4. CasadiMeta

class CasadiMeta(*args)

[INTERNAL]

Collects global CasADi meta information.

Joris Gillis

Extra doc: https://github.com/casadi/casadi/wiki/L_23k

C++ includes: casadi_meta.hpp

static build_type(*args)
build_type() -> char const *
static compiler(*args)
compiler() -> char const *
static compiler_flags(*args)
compiler_flags() -> char const *
static compiler_id(*args)
compiler_id() -> char const *
static feature_list(*args)
feature_list() -> char const *
static git_describe(*args)
git_describe() -> char const *
static git_revision(*args)
git_revision() -> char const *
static install_prefix(*args)
install_prefix() -> char const *
static modules(*args)
modules() -> char const *
static plugins(*args)
plugins() -> char const *
static version(*args)
version() -> char const *

📣Next hands-on CasADi class: November 18-20