Published July 18, 2020
| Version 3.5.2
Software
Open
casadi/casadi: 3.5.2
Creators
- Joel Andersson1
- jgillis2
- casadibot
- Greg Horn
- nielsvd3
- Robin Verschueren
- Jack Vreeken
- toivoh
- Scott Kovach
- James Goppert4
- Andres Codas5
- Andrew Wagner6
- Mirko Hahn
- Christopher Dembia7
- timmercy
- kozatt
- Gabriel Hackebeil
- Mikhail Katliar8
- Vitalij
- Jorn Baayen9
- Justin Carpentier10
- Nicholas Bianco7
- Nicolai
- tsijs
- Boris Belousov
- doducle
- Markus Friedrich
- 1. Philips
- 2. KU Leuven
- 3. Robert Bosch GmbH Corporate Research
- 4. JMG Robotics, dronecrew.com, Purdue University
- 5. IBM
- 6. Robovision
- 7. Stanford University
- 8. University of Freiburg
- 9. KISTERS Nederland B.V.
- 10. INRIA-PARIS @willowsierra
Description
Install
Grab a binary from the table (for MATLAB, use the newest compatible version below):
<table> <tr><th></th><th>Windows</th><th>Linux</th><th>Mac</th></tr> <tr> <th>Matlab</th> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-matlabR2016a-v3.5.2.zip">R2016a</a> or later,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-matlabR2014b-v3.5.2.zip">R2014b</a>,<br /> <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-matlabR2014a-v3.5.2.zip">R2014a</a>,<br /> <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-matlabR2013a-v3.5.2.zip">R2013a</a> or R2013b</td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-matlabR2014b-v3.5.2.tar.gz">R2014b</a> or later,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-matlabR2014a-v3.5.2.tar.gz">R2014a</a></td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-matlabR2015a-v3.5.2.tar.gz">R2015a</a> or later,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-matlabR2014b-v3.5.2.tar.gz">R2014b</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-matlabR2014a-v3.5.2.tar.gz">R2014a</a></td> </tr> <tr> <th>Octave</th> <td> 4.4.1 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-4.4.1-w32-v3.5.2.zip">32bit</a> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-4.4.1-w64-v3.5.2.zip">64bit</a>), <br /> 4.4.0 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-4.4.0-w32-v3.5.2.zip">32bit</a> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-4.4.0-w64-v3.5.2.zip">64bit</a>), <br /> 5.1.0 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-5.1.0-w32-v3.5.2.zip">32bit</a> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-5.1.0-w64-v3.5.2.zip">64bit</a>), <br /> 5.2.0 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-5.2.0-w32-v3.5.2.zip">32bit</a> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-octave-5.2.0-w64-v3.5.2.zip">64bit</a>)</td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-octave-4.4.1-v3.5.2.tar.gz">4.4.1</a>, <br/><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-octave-4.2.2-v3.5.2.tar.gz">4.2.2</a>, <br/><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-octave-5.1.0-v3.5.2.tar.gz">5.1.0</a>, <br/><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-octave-5.2.0-v3.5.2.tar.gz">5.2.0</a></td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-octave-5.2.0-v3.5.2.tar.gz">5.2.0</a></td> </tr> <tr> <th rowspan="2">Python</th> <td>Py27 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py27-v3.5.2.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py27-v3.5.2-64bit.zip">64bit</a><sup>*</sup>),<br /> Py35 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py35-v3.5.2.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py35-v3.5.2-64bit.zip">64bit</a><sup>*</sup>),<br /> Py36 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py36-v3.5.2.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py36-v3.5.2-64bit.zip">64bit</a><sup>*</sup>),<br /> Py37 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py37-v3.5.2.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py37-v3.5.2-64bit.zip">64bit</a><sup>*</sup>),<br /> Py38 (<a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py38-v3.5.2.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-windows-py38-v3.5.2-64bit.zip">64bit</a><sup>*</sup>)</td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-py27-v3.5.2-64bit.tar.gz">Py27</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-py35-v3.5.2-64bit.tar.gz">Py35</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-py36-v3.5.2-64bit.tar.gz">Py36</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-py37-v3.5.2-64bit.tar.gz">Py37</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-linux-py38-v3.5.2-64bit.tar.gz">Py38</a></td> <td> <a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-py27-v3.5.2.tar.gz">Py27</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-py35-v3.5.2.tar.gz">Py35</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-py36-v3.5.2.tar.gz">Py36</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-py37-v3.5.2.tar.gz">Py37</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.2/casadi-osx-py38-v3.5.2.tar.gz">Py38</a></td> </tr> <tr> <td colspan="3">or just <code>pip install casadi</code> (needs <code>pip -V</code>>=8.1)</td> </tr> </table>(<sup>*</sup>) Check your Python console if you need 32bit or 64bit - bitness should be printed at startup.
Unzip in your home directory and adapt the path:
<table> <tr><th>Matlab/Octave</th><th>Python</th><tr> <tr><td> <pre> <code> addpath('<yourpath>/casadi-matlabR2014a-v3.5.2') import casadi.* x = MX.sym('x') disp(jacobian(sin(x),x)) </code> </pre> </td><td> <pre> <code> from sys import path path.append(r"<yourpath>/casadi-py27-v3.5.2") from casadi import * x = MX.sym("x") print(jacobian(sin(x),x)) </code> </pre> </td></tr> </table>Get started with the example pack.
Troubleshooting Release notes CasADi Functions- CasADi Functions can be serialized now (#308).
f.save('f.casadi') % Dump any CasADi Function to a file
f = Function.load('f.casadi') % Loads back in
This enables easy sharing of models/solver isntances beteen Matlab/Python/C++ cross-platform, and enables a form of parallelization.
- You can now evaluate CasADi Functions from C without requiring code-generation. This makes it possible to embed CasADi computations in Fortran, Julia, FMI, ...
- All CasADi Functions support timing information now (
print_time
, default true for QP and NLP solvers). Userecord_time
to make timings available throughf.stats()
without printing them. map
with reduce arguments now has an efficient implementation (no copying/repmat)- Low-overhead Callback eval support was changed to
eval_buffer
FunctionInternal::finalize
no longer takes options dict.- Options
always_inline
andnever_inline
were added - Options
is_diff_in
andis_diff_out
were added
- breaking:
IM
type is removed from public API (was used to represent integer sparse matrices). UseDM
instead. - breaking:
linspace(0,1,3)
andlinspace(0.0,1,3)
now both return[0 0.5 1]
instead of[0 0 1]
for the former MX
supports slicing withMX
now (symbolic indexing).- Issue #2364:
- breaking:
veccat
of an empty list now returns0-by-1
instead of0-by-0
. jtimes
output dimensions have changed when any of the arguments is empty.- NLP function object's 'lam_p' is now
0-by-1
in case of missing parameters.
- breaking:
- Support for parametric (=changeable only, but not differentiable) grid and/or coefficients for linear/spline interpolation
- for
interpolant
, new constructors where added that takes dimensions instead of concrete vectors
- for
- Support for symbolic (differentiable) grid and coefficients for linear interpolation (set
inline
option to true).
- Overhead-less CasADi Function evaluation API added through Python memoryviews
- Similar functionality in Callbacks
- breaking:
a(:)=b
now behaves like Matlab builtin matrices whena
is a CasADi matrix. Before, only the first column ofa
would be touched by this statement. (#2363) - breaking: Fixed bug where
MX
constructor treated a numeric row vector as column vector. Nowsize(MX(ones(1,4)))
returns(1,4)
as expected. (#2366) - Can now use spy directly on
DM
,MX
,SX
- Opti supports conic problems now:
Opti('conic')
- One can now easily obtain a parametric solution as a CasADi Function from an Opti instance:
opti = Opti()
x = opti.variable()
y = opti.variable()
p = opti.parameter()
opti.minimize(y**2+sin(x-y-p)**2)
opti.subject_to(x+y>=1)
opti.solver(nlpsolver,nlpsolver_options)
F = opti.to_function("F",[x,p,opti.lam_g],[x,y])
r = F(0,0.1,0)
(3.5.1) Improved support for vertcatted inputs to to_function
- Using Opti together with
max_iter
is more natural now: usesolve_limited()
to avoid exceptions to be raised when iterations or time runs out. No need to try/catch.
- breaking:
external
now looks for a.dylib
file, not.so
- breaking: Codegen API has changes related to thread-local memory:
void* mem
changed toint mem
alloc_mem
,init_mem
,free_mem
have been purged.checkout
andrelease
replace them.
int mem = checkout();
eval(arg, res, iw, w, mem);
release(mem);
- Codegen 'CODEGEN_PREFIX' has been renamed to 'CASADI_CODEGEN_PREFIX'
- QP solvers (QRQP, OSQP) and SqpMethod codegenerate now. This means that embedded MPC with CasADi is now more practical.
- Runge-Kutta and Collocation Integrator objects can be inlined into code-generatable MX Function with the 'simplify' option.
- (3.5.1) an important flaw was corrected that caused incorrect code for expression graphs with logical 'and' and 'or'.
- (3.5.1) fixed regression for expression graphs containing inf/nan
- breaking: NLP solvers -
bound_consistency
, an option to post-process the primal and dual solution by projecting it on the bounds, introduced in 3.4, was changed to defaultoff
- Sundials was patched to support multi-threading
- WORHP was bumped to v1.13
- SNOPT was bumped to v7.7
- SuperSCS (conic solver) was added
- OSQP (QP solver) was added
CBC (LP solver) was added
breaking: SQP Method
regularize_margin
option was addedregularize
(bool) option was removed. To get the effect ofregularize=true
, specifyconvexify_strategy='regularize'
. Other strategies include clipping eigenvalues.- line search was reverted from a custom designed thing, to standard textbook L1
- CPLEX and Gurobi got support for sos constraints
- Conic/qpsol interface extended for semidefinite programming and SOCP
- Solvers supporting SOCP:
Gurobi
,SuperSCS
,CPLEX
- Solvers supporting SOCP:
- breaking: Newton Rootfinder now supports a
line_search
option (default true) - Rootfinder now throws an exception by default ('error_on_fail' option true) when failing to converge
- Debugging facilities:
- Function options
print_in
/print_in
print inputs/outputs when numerically evaluating a function - Function option
dump_in
/dump_out
dumps to the file system - Function option
dump
dumps the function itself (loadable withFunction.load
)
- Function options
DM.from_file
andDM.to_file
with aMatrixMarket
andtxt
support- Helping interaction with codegen with
main=true
:Function.generate_in
/Function.nz_from_in
/Function.nz_to_in
to help creating input text files. Function.convert_in
/Function.convert_out
to switch between list and dictionary arguments/results
- (3.5.1) Mac binaries for Matlab was switched to a different build environemnt. The binaries now require High Sierra or above, and work on Catalina.
Files
casadi/casadi-3.5.2.zip
Files
(4.6 MB)
Name | Size | Download all |
---|---|---|
md5:bb2dea50520b178150264261db76b245
|
4.6 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/casadi/casadi/tree/3.5.2 (URL)