CasADi

CasADi: A symbolic package for automatic differentiation and optimal control. We present CasADi, a free, open-source software tool for fast, yet efficient solution of nonlinear optimization problems in general and dynamic optimization problems in particular. To the developer of algorithms for numerical optimization and to the advanced user of such algorithms, it offers a level of abstraction which is notably lower, and hence more flexible, than that of algebraic modeling languages such as AMPL or GAMS, but higher than working with a conventional automatic differentiation (AD) tool. par CasADi is best described as a minimalistic computer algebra system (CAS) implementing automatic differentiation in eight different flavors. Similar to algebraic modeling languages, it includes high-level interfaces to state-of-the-art numerical codes for nonlinear programming, quadratic programming and integration of differential-algebraic equations. CasADi is implemented in self-contained C++ code and contains full-featured front-ends to Python and Octave for rapid prototyping. In this paper, we present the AD framework of CasADi and benchmark the tool against AMPL for a set of nonlinear programming problems from the CUTEr test suite.