@hackage casadi-bindings2.0.0.1

low level bindings to CasADi

  • Installation

  • Dependencies (0)

  • Dependents (0)

Haskell bindings to the CasADi algorithmic differentiation and optimal control library. Version numbers correspond to the C++ library version numbers except the very last number which may indicate breaking changes.

This is a metapackage which also hosts the installation instructions. The purpose is that users of the library will always be able to "cabal install casadi-bindings" and have things Just Work, though you may need to install additional add-on modules manually.

The `casadi-bindings-internal` package is handwritten and provides some casadi memory management wrappers and C++ standard type marsahalling.

The rest of the modules like `casadi-bindings-core`, `casadi-bindings-ipopt-interface`, etc are autogenerated from casadi's swig interface and correspond exactly to the casadi C++ API.

For high-level bindings, see my dynobud project

The current instructions for getting started on Debian/Ubuntu:

Install libcasadi-shared from https://github.com/casadi/casadi/releases/latest, first download it from that website, then:

> dpkg -i libcasadi-shared.deb
> cabal update; cabal install casadi-bindings

to install the ipopt interface:

> apt-get install coinor-libipopt-dev
> cabal install casadi-bindings-ipopt-interface

Temporary note: there is something wrong with casadi and ipopt related to http://list.coin-or.org/pipermail/ipopt/2014-April/003670.html, and https://github.com/casadi/casadi/issues/1075. At the moment this .cabal package works for me as is, but YMMV

For the snopt interface, you may have to do something like

cabal install casadi-bindings-snopt-interface --extra-lib-dirs='/home/me/snopt/lib'

to find the snopt libraries

I only officially support debian/ubuntu right now, but I have gotten it working on OSX in the past. Everything is done with pkg-config and LD_LIBRARY_PATH, so there's no reason I know that there should be problems.