a haskell binding to the nonlinear programming solver
Ipopt. Bindings to
NLopt are
also included.
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 perhaps it is negligible for your uses.
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. Note that
there is a Numeric.AD.Mode.Forward.Double but as yet none
for Vectors of Double
sparseness of derivatives isn't used
no binding to sensitivity parts as-implemented in ipopt