<div dir="ltr"><span style="font-size:12.8px">Dear IPOPT user community,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">We are happy to announce the release of CasADi 2.4. CasADi is a free and open-source tool for nonlinear optimization and optimal control. It is available for C++, Python, Haskell(*) and starting with this release MATLAB.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">CasADi consists of a self-contained symbolic core that implements algorithmic differentiation (AD) coupled to set of solver plugins for nonlinear programming, solution of initial-value problems in ODEs or DAEs etc. CasADi's state-of-the-art AD framework uses a source code transformation (SCT) approach to efficiently calculate Jacobian-times-vector products (the so-called forward and reverse modes of AD) as well as complete, large and sparse Jacobians and Hessians (using a graph coloring approach). These capabilities of CasADi allow the interfaced solvers, including IPOPT, to automatically obtain all required derivative information and no knowledge of AD is needed to use the tool per se.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">CasADi 2.4 is a major release and introduces a new, more compact syntax as well as a number of new features, including improved export of self-contained C-code, just-in-time compilation and the above mentioned MATLAB front-end. To install CasADi, simply download one of the precompiled binaries, available for Windows, Linux and OSX. These binaries come with IPOPT pre-installed. CasADi can also be compiled from sources.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">The following MATLAB script illustrates how a simple NLP can be solved with IPOPT via CasADi/MATLAB:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div>% Import CasADi</div><div>import casadi.*</div><div> </div><div>% Create NLP solver instance</div><div>x = SX.sym('x');  % Cf. 'sym' in symbolic toolbox</div><div>y = SX.sym('y');</div><div>z = SX.sym('z');</div><div>v = [x;y;z];</div><div>f = x^2 + 100*z^2;     % minimize    x^2 + 100*z^2</div><div>g = z + (1-x)^2 - y;   % subject to  z + (1-x)^2 - y == 0</div><div>solver = NlpSolver('solver', 'ipopt', struct('x', v, 'f', f, 'g', g));</div><div><br></div><div>% Pass initial guess, bounds and solve the NLP</div><div>res = solver(struct('x0',[2.5 3.0 0.75],...</div><div>                    'lbx',-inf,'ubx',inf,'lbg',0,'ubg',0));</div><div>disp(sprintf('Solution: %d, Constraint multipliers for g: %d',...</div><div>             full(res.f), full(res.lam_g)));</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">For a more complete introduction, follow the interactive demo on <a href="http://demo.casadi.org/" target="_blank">http://demo.casadi.org</a> or read the user guide (and other documents) available from the website, <a href="http://casadi.org/" target="_blank">http://casadi.org</a>.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Best regards,</div><div style="font-size:12.8px">Joel, Joris and & Greg - The CasADi development team</div><div><br></div><div>(*) The Haskell front-end is part of the D<span style="font-size:12.8px">ynobud tool, cf. <a href="https://github.com/ghorn/dynobud">https://github.com/ghorn/dynobud</a></span></div><div><br></div><br>
</div>