@hackage ipopt-hs0.4.2.0
haskell binding to ipopt and nlopt including automatic differentiation
Categories
License
BSD-3-Clause
Maintainer
Adam Vogt <vogt.adam@gmail.com>
Links
Versions
Installation
Dependencies (10)
- ad >=4.2
- ansi-wl-pprint >=0.6.7
- base <5
- containers <0.6
- lens >=3.10 && <5
- mtl >=2 && <3 Show all…
Dependents (1)
@hackage/acme-everything
Package Flags
build_examples
(off by default)
build executable from examples/
nlopt
(on by default)
also include nlopt bindings
a haskell binding to the nonlinear programming solver Ipopt. Bindings to NLopt are also included.
installation- needs the c library ipopt installed. Also by default a binding to
nlopt is included. Nlopt by default does not include shared libraries,
which seems to be needed to run things from ghci (ie. you need to
./configure --enable-sharedwhen building nlopt).
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.StorableandData.Vectormight 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 sensitivity parts as-implemented in ipopt