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
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)
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
Extra doc: https://github.com/casadi/casadi/wiki/L_3z
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 -----------------------------
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]
See also
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 *