CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT, etc. It can be used in C++, Python, or Matlab/Octave. CasADi's backbone is a symbolic framework implementing forward and reverse modes of AD on expression graphs to construct gradients, large-and-sparse Jacobians, and Hessians. These expression graphs, encapsulated in Function objects, can be evaluated in a virtual machine or exported to stand-alone C code. Initial value problems in ordinary or differential-algebraic equations (ODE/DAE) can be calculated using explicit or implicit Runge-Kutta methods or interfaces to IDAS/CVODES from the SUNDIALS suite. Derivatives are calculated using sensitivity equations, up to arbitrary order.

Features

  • Build efficient optimal control software, with minimal effort
  • CasADi is an open-source tool for nonlinear optimization and algorithmic differentiation
  • It facilitates rapid — yet efficient — implementation of different methods for numerical optimal control
  • Implements forward and reverse mode of AD on expression graphs to construct gradients, large-and-sparse Jacobians and Hessians
  • Documentation available
  • Examples available

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

GNU Library or Lesser General Public License version 2.0 (LGPLv2)

Follow CasADi

CasADi Web Site

Other Useful Business Software
Custom VMs From 1 to 96 vCPUs With 99.95% Uptime Icon
Custom VMs From 1 to 96 vCPUs With 99.95% Uptime

General-purpose, compute-optimized, or GPU/TPU-accelerated. Built to your exact specs.

Live migration and automatic failover keep workloads online through maintenance. One free e2-micro VM every month.
Start Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of CasADi!

Additional Project Details

Programming Language

C++

Related Categories

C++ Libraries

Registered

2024-05-22