ipopt-hs: haskell binding to ipopt and nlopt including automatic differentiation

[ bsd3, library, math, numeric, optimisation ] [ Propose Tags ]

a haskell binding to the nonlinear programming solver Ipopt. Bindings to NLopt are also included.

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-shared when 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:

Change log ChangeLog.md
Dependencies ad (>=4.2), ansi-wl-pprint (>=0.6.7), base (<5), containers (<0.6), criterion, ipopt-hs, lens (>=3.7 && <5), linear, mtl (==2.*), random-shuffle, Rlang-QQ, splines, template-haskell, uu-parsinglib (>=2.8), vector (==0.10.*), vector-space (>=0.8.6) [details]
License BSD-3-Clause
Author Adam Vogt <vogt.adam@gmail.com>
Maintainer Adam Vogt <vogt.adam@gmail.com>
Category Optimisation, Math, Numeric
Source repo head: darcs get http://code.haskell.org/~aavogt/ipopt-hs
Uploaded by AdamVogt at Tue Jan 12 20:06:38 UTC 2016
Distributions NixOS:
Executables ipopt-hs_Tests
Downloads 2371 total (17 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI





build executable from examples/


also include nlopt bindings


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees