L-BFGS-B を試したついでに、IpoptのHaskellバインディングも見つけたので、試してみる。
Ipopt
https://projects.coin-or.org/Ipopt
Haskellバインディング
http://hackage.haskell.org/package/ipopt-hs
結果
https://gist.github.com/msakai/1dc67604012237e5f14c
Ubuntuのcoinor-libipopt-devパッケージでインストールしたものは、MPIのライブラリとリンクされているらしく、MPIなしで実行しようとしたらエラーになってしまった <https://bugs.launchpad.net/ubuntu/+source/coinor-ipopt/+bug/1167585> ので自分でビルド。 また、linear solver が無い問題 https://projects.coin-or.org/Ipopt/ticket/75 とかでもハマってしまった……