@hackage ipopt-hs0.3.0.0
haskell binding to ipopt including automatic differentiation
Categories
License
BSD-3-Clause
Maintainer
Adam Vogt <vogt.adam@gmail.com>
Links
Versions
Installation
Dependencies (8)
- ad >=3.4 && <3.5
- ansi-wl-pprint >=0.6.7
- base <5
- containers >=0.5 && <0.6
- lens >=3.10
- mtl >=2 && <3 Show all…
Dependents (1)
@hackage/acme-everything
Package Flags
build_examples
(off by default)
build executable from examples/
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.
Refer to examples/Test1.hs for an example where the derivatives
are computed by hand, Test2.hs for the use of
createIpoptProblemAD and Test3.hs for the highest level.
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 to decide which way to calculate (forward vs. backward mode)
probably doesn't work if
IpStdCInterface.hhas Number =/=CDoubleno binding to SetIntermediateCallback
garbage collection of
IpProblemwon't free C-side resources