@hackage ipopt-hs0.4.0.0

haskell binding to ipopt including automatic differentiation

a haskell binding to the nonlinear programming solver ipopt http://projects.coin-or.org/Ipopt

installation
needs ipopt installed: For example if you have a `usrincludecoinIpStdCInterface.h` from your ipopt installation, use:
cabal install ipopt-hs --extra-include-dirs=/usr/include/coin

A embedded language, similar to the one provided by glpk-hs, is defined in Ipopt.NLP. The goal is to define problems at a level similar to other "algebraic modeling languages", but retain some of the safety and flexibility available in haskell. There is some overhead http://code.haskell.org/~aavogt/ipopt-hs/examples/bench.html but at least on the small 4-variable constrained optimization problem.

Current limitations include:

  • copying in every iteration happens between between Data.Vector.Storable and Data.Vector might be avoidable somehow. Currently it is done because AD needs a Traversable structure, but Storable vectors are not traversable.

  • sparseness of derivatives isn't used

  • no binding to SetIntermediateCallback