[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#745758: ITP: casadi -- symbolic framework for algorithmic differentiation and numerical optimization



Package: wnpp
Owner: Greg Horn <gregmainland@gmail.com>
Severity: wishlist

* Package name    : casadi
  Version         : 2.0.0
  Upstream Author : Joel Anderson <j.a.e.andersson@gmail.com>
                    Joris Gillis <joris.gillis42@gmail.com>
                    Greg Horn <gregmainland@gmail.com>
* URL             : http://www.casadi.org
* License         : LGPL-3
  Programming Lang: C++ with Python bindings
  Description     : symbolic framework for algorithmic differentiation and numerical optimization

CasADi is a symbolic framework for algorithmic differentiation and numeric
optimization. Using the syntax of computer algebra systems, it allows users
to construct symbolic expressions consisting of either scalar- or (sparse)
matrix-valued operations. These expressions can then be efficiently
differentiated using state-of-the-art algorithms for algorithmic differentiation
in forward and reverse modes and graph coloring techniques for generating
complete, large and sparse Jacobians and Hessians.

The main purpose of the tool is to be a low-level tool for quick, yet highly
efficient implementation of algorithms for nonlinear 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 aims to relieve the user from the work of manually
calculating the relevant derivatives or ODE/DAE sensitivity information
as needed by an NLP solver. This drastically reduces the effort of implementing
the methods compared to a pure C/C++/Fortran approach.

*  why is this package useful/relevant? is it a dependency for
    another package? do you use it? if there are other packages
    providing similar functionality, how does it compare?

This code is the result of extensive work in 3 PhDs. CasADi is in active
development by us, and very active use by us and others. There is currently a
respectable user base within a few universities and companies, including
some leaders in the field of dynamic optimization. We have interacted with many
people who want to use the code but have trouble building from source, so Debian
packaging will definitely facilitate this.

There are other collateral benefits to this package. For instance we provide
a convenient and efficient interface to IPOPT (coinor-libipopt package). We
also provide stand-alone efficient algorithmic differentiation in C++
and Python.

*  how do you plan to maintain it? inside a packaging team
   (check list at https://wiki.debian.org/Teams)? are you
   looking for co-maintainers? do you need a sponsor?
We intend to reach out to the DebianScience team and the debian-mentors mailing
list for advice. We aren't sure if it makes more sense to be part of a team or
to get a sponsor. I would like to learn how to become a Debian packager.

Reply to: