3.2.3
Install
Grab a binary from the table (for MATLAB, use the newest compatible version below):
Windows 64 bit | Linux (14.04+) | Mac | |
---|---|---|---|
Matlab | R2014b or later | R2014b or later | R2015a or later |
R2014a | R2014a | R2014b | |
R2013a or R2013b | R2014a | ||
Octave | 4.2.1 32bit or 64bit | 4.2.1 | 4.2.1 |
Python | Py27 (py 32bit or py 64bit ) | Py27 | Py27 |
Py35 (py 32bit or py 64bit ) | Py35 | Py35 | |
Py36 (py 32bit or py 64bit ) | Py36 | Py36 |
or see download page for more options/versions ...
Unzip in your home directory and adapt the path:
Matlab/Octave | Python |
---|---|
addpath('.../casadi-matlabR2014a-v3.2.3') import casadi.* x = MX.sym('x') disp(jacobian(sin(x),x)) |
from sys import path path.append(r".../casadi-py27-np1.9.1-v3.2.3") from casadi import * x = MX.sym("x") print(jacobian(sin(x),x)) |
New: install with pip install casadi
(you must have pip --version
>= 8.1!)
Troubleshooting
Get started with the example pack.
Getting error "CasADi is not running from its package context." in Python? Check that you have casadi-py27-np1.9.1-v3.2.3/casadi/casadi.py
. If you have casadi-py27-np1.9.1-v3.2.3/casadi.py
instead, that's not good; add an extra casadi
folder.
Release notes
New features
- Introduced differentiable exponential matrix node
expm
(requires slicot) - Introduced differentiable N-dimensional lookup tables:
interpolant
with 'bspline' solver.
Bugs in the SUNDIALS interface fixed
CasADi 3.1 included a refactored support for ODE/DAE sensitivity analysis. While more efficient, this also exposed some bugs that have now been fixed in the CasADi 3.2 release, including:
- A bug affecting second order sensitivity analysis using CVODES was fixed. Cf. #1924.
- Segfault in IDAS Cf. #1911.
API changes
- The
if_else
andconditional
operations are now non-short-circuiting by default for both SX and MX. This means thatif_else(c,x,y)
is now equivalent toif_else(c,x,y,False)
and notif_else(c,x,y,True)
as before. Also note thatif_else(c,x,y,True)
is only supported for MX. Cf. #1968. - The functions
Function::jacobian
,Function::derivative
andFunction::hessian
, which have had an internal character since CasADi 3.0, have been deprecated and will be removed in their current forms in the next release. The user is encouraged to work with expressions (e.g.J = jacobian(f,x)
orJv = jtimes(f,x,v)
or[H,g] = hessian(f,x)
) or useFunction::factory
(*). To allow a smooth transition,Function::jacobian
andFunction::hessian
will be available asFunction::jacobian_old
andFunction::hessian_old
in this and next release. Cf. #1777.
(*) example in Matlab:
x = MX.sym('x')
y = x^2;
f = Function('f',{x},{y})
%J = f.jacobian(0,0) replacement:
J = Function('J',{x},{jacobian(y,x), y}) % alternative 1
J = f.factory('J',{'i0'},{'jac:o0:i0','o0'}) % alternative 2
%H = f.hessian(0,0) replacement:
[H,g] = hessian(y,x);
H = Function('H',{x},{H,g}) % alternative 1
H = f.factory('H',{'i0'},{'hess:o0:i0:i0','grad:o0:i0'}) % alternative 2
Improvements to C code generation
- The generated code now follows stricter coding standards. It should now be possible to compile the code with the GCC flags
-Wall -Werror
. Cf. #1741.
Changes to the build system
- The build system has been refactored and CasADi/C++ can be conveniently compiled with Visual Studio C++ on Windows. The installation now also includes CMake configure files, which makes it convenient to locate and use a CasADi installation in C++ code. Cf. #1982.
- The logic for source builds have changed. Before, the build system would try to locate third-party packages on the system and compile and install the third-party interfaces if this was successful. Now, the logic is that third-party packages are not installed unless the user specifically indicates this
e.g.
-DWITH_IPOPT=ON`. Cf.
#1989, #1988. - The default installation directories for the SWIG interfaces (for Python, Octave and MATLAB) has changed. It is now installed as subdirectories of the
CMAKE_INSTALL_PREFIX
location by default, but this can be changed by explicitly setting the CMake variablesBIN_PREFIX
,CMAKE_PREFIX
,INCLUDE_PREFIX
,LIB_PREFIX
,MATLAB_PREFIX
andPYTHON_PREFIX
. A flat installation directory (without subdirectories) can be obtained by setting theWITH_SELFCONTAINED
option. This is the default behavior on Windows. Cf. #1991, #1990
Changes to precompiled binaries
Python 2.6 (#1976), Python 3.6 (#1987) and Octave 4.2 (#2002, #2000) are now supported.