1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

https://sourceforge.net/apps/trac/casadi/raw-attachment/wiki/TitleIndex/casadi.png

CasADi is a symbolic framework for automatic differentiation and numeric optimization. Using the syntax of computer algebra systems, it implements automatic differentiation in forward and adjoint modes by means of a hybrid symbolic/numeric approach. The main purpose of the tool is to be a low-level tool for quick, yet highly efficient implementation of algorithms for numerical optimization. Of particular interest is dynamic optimization, using either a collocation approach, or a shooting-based approach using embedded ODE/DAE-integrators. In either case, CasADi relieves the user from the work of efficiently calculating the relevant derivative or ODE/DAE sensitivity information to an arbitrary degree, as needed by the NLP solver. This together with full-featured Python and Octave front ends, as well as back ends to state-of-the-art codes such as Sundials (CVODES, IDAS and KINSOL), IPOPT and KNITRO, drastically reduces the effort of implementing the methods compared to a pure C/C++/Fortran approach.

Every feature of CasADi (with very few exceptions) is available in C++, Python and Octave, with little to no difference in performance, so the user has the possibility of working completely in C++, Python or Octave or mixing the languages. We recommend new users to try out the Python version first, since it allows interactivity and is more stable and better documented than the Octave front-end.

CasADi is an open-source tool, written in self-contained C++ code, depending only on the Standard Template Library. It is developed by Joel Andersson and Joris Gillis at the Optimization in Engineering Center, OPTEC of the K.U. Leuven under supervision of Moritz Diehl. CasADi is distributed under the LGPL license, meaning the code can be used royalty-free even in commercial applications.

Help and support
Getting Started
References
Mailing lists
  • Announcements for new releases of CasADi and other major events (few mails per year)
  • Developers
  • No users mailing list, please use the forum

Admin howto


NEWS

8 February 2011:
Version 1.1.0beta has now been released, the first completely public release. You will find it in the Sourceforge SVN, where the code is now located. Enjoy!

1 June 2011:
Version 1.2.0beta has now been released. See the list of changes for a list of changes from the previous release. Also see the changes from the release to the current trunk version.

New or improved features include
  • Extensive bug fixes
  • A major documentation effort (thanks Joris and Attila!)
  • A Python-based test suite
  • A first version of a symbolic Jacobian generation for the MX class
  • An Octave front-end (working but not yet completed)

10 October 2011:
Version 1.3.0beta has now been released. See the list of changes for a list of changes from the previous release. Also see the changes from the release to the current trunk version. Check the documentation for this release.

New or improved features include
  • Extensive bug fixes
  • Interfaces to several new tools, including the OOQP, qpOASES and the ACADO integrators
  • A feature complete Octave front-end (though not as stable as the Python front-end)
  • Faster, more economical symbolic and numeric Jacobians through graph coloring
  • Symbolic Jacobian generation for the MX class, using both forward and adjoint mode (still beta)
  • An automated test robot compiles the trunk and runs the test suit after every commit with GCC as well as Visual C++, making the trunk notably more stable than before. Thanks Joris for this great feature!
  • Automatic transformation of certain MX graphs to the (less economical but more efficient) SX graph.