casadi/casadi: 3.5.1 Article Swipe
YOU?
·
· 2019
· Open Access
·
· DOI: https://doi.org/10.5281/zenodo.3497526
· OA: W3208963539
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.1/casadi-windows-matlabR2016a-v3.5.1.zip">R2016a</a> or later,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-matlabR2014b-v3.5.1.zip">R2014b</a>,<br /> <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-matlabR2014a-v3.5.1.zip">R2014a</a>,<br /> <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-matlabR2013a-v3.5.1.zip">R2013a</a> or R2013b</td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-matlabR2014b-v3.5.1.tar.gz">R2014b</a> or later,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-matlabR2014a-v3.5.1.tar.gz">R2014a</a></td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-matlabR2015a-v3.5.1.tar.gz">R2015a</a> or later,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-matlabR2014b-v3.5.1.tar.gz">R2014b</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-matlabR2014a-v3.5.1.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.1/casadi-windows-octave-4.4.1-w32-v3.5.1.zip">32bit</a> / <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-octave-4.4.1-w64-v3.5.1.zip">64bit</a>), <br /> 4.4.0 (<a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-octave-4.4.0-w32-v3.5.1.zip">32bit</a> / <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-octave-4.4.0-w64-v3.5.1.zip">64bit</a>), <br /> 5.1.0 (<a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-octave-5.1.0-w32-v3.5.1.zip">32bit</a> / <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-octave-5.1.0-w64-v3.5.1.zip">64bit</a>)</td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-octave-4.4.1-v3.5.1.tar.gz">4.4.1</a>, <br/><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-octave-4.2.2-v3.5.1.tar.gz">4.2.2</a>, <br/><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-octave-5.1.0-v3.5.1.tar.gz">5.1.0</a></td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-octave-5.1.0-v3.5.1.tar.gz">5.1.0</a></td> </tr> <tr> <th rowspan="2">Python</th> <td>Py27 (<a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py27-v3.5.1.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py27-v3.5.1-64bit.zip">64bit</a><sup>*</sup>),<br /> Py35 (<a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py35-v3.5.1.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py35-v3.5.1-64bit.zip">64bit</a><sup>*</sup>),<br /> Py36 (<a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py36-v3.5.1.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py36-v3.5.1-64bit.zip">64bit</a><sup>*</sup>),<br /> Py37 (<a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py37-v3.5.1.zip">32bit</a><sup>*</sup> / <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-windows-py37-v3.5.1-64bit.zip">64bit</a><sup>*</sup>) </td> <td><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-py27-v3.5.1-64bit.tar.gz">Py27</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-py35-v3.5.1-64bit.tar.gz">Py35</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-py36-v3.5.1-64bit.tar.gz">Py36</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-linux-py37-v3.5.1-64bit.tar.gz">Py37</a></td> <td> <a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-py27-v3.5.1.tar.gz">Py27</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-py35-v3.5.1.tar.gz">Py35</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-py36-v3.5.1.tar.gz">Py36</a>,<br /><a href="https://github.com/casadi/casadi/releases/download/3.5.1/casadi-osx-py37-v3.5.1.tar.gz">Py37</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.1') 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.1") 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). <pre><code>f.save('f.casadi') % Dump any CasADi Function to a file f = Function.load('f.casadi') % Loads back in </code></pre> 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 (<code>print_time</code>, default true for QP and NLP solvers). Use <code>record_time</code> to make timings available through <code>f.stats()</code> without printing them. <code>map</code> with reduce arguments now has an efficient implementation (no copying/repmat) Low-overhead Callback eval support was changed to <code>eval_buffer</code> <code>FunctionInternal::finalize</code> no longer takes options dict. Options <code>always_inline</code> and <code>never_inline</code> were added Options <code>is_diff_in</code> and <code>is_diff_out</code> were added CasADi expressions <strong>breaking</strong>: <code>IM</code> type is removed from public API (was used to represent integer sparse matrices). Use <code>DM</code> instead. <strong>breaking</strong>: <code>linspace(0,1,3)</code> and <code>linspace(0.0,1,3)</code> now both return <code>[0 0.5 1]</code> instead of <code>[0 0 1]</code> for the former <code>MX</code> supports slicing with <code>MX</code> now (symbolic indexing). Issue #2364: <strong>breaking</strong>: <code>veccat</code> of an empty list now returns <code>0-by-1</code> instead of <code>0-by-0</code>. <code>jtimes</code> output dimensions have changed when any of the arguments is empty. NLP function object's 'lam_p' is now <code>0-by-1</code> in case of missing parameters. Interpolation functionality Support for parametric (=changeable only, but not differentiable) grid and/or coefficients for linear/spline interpolation for <code>interpolant</code>, new constructors where added that takes dimensions instead of concrete vectors Support for symbolic (differentiable) grid and coefficients for linear interpolation (set <code>inline</code> option to true). Python specific Overhead-less CasADi Function evaluation API added through Python memoryviews Similar functionality in Callbacks Matlab/Octave specific <strong>breaking</strong>: <code>a(:)=b</code> now behaves like Matlab builtin matrices when <code>a</code> is a CasADi matrix. Before, only the first column of <code>a</code> would be touched by this statement. (#2363) <strong>breaking</strong>: Fixed bug where <code>MX</code> constructor treated a numeric row vector as column vector. Now <code>size(MX(ones(1,4)))</code> returns <code>(1,4)</code> as expected. (#2366) Can now use spy directly on <code>DM</code>,<code>MX</code>,<code>SX</code> Opti Opti supports conic problems now: <code>Opti('conic')</code> One can now easily obtain a parametric solution as a CasADi Function from an Opti instance: <pre><code>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) </code></pre> (3.5.1) Improved support for vertcatted inputs to <code>to_function</code> Using Opti together with <code>max_iter</code> is more natural now: use <code>solve_limited()</code> to avoid exceptions to be raised when iteration