packages feed

ipopt-hs-0.2.0.0: ipopt-hs.cabal

name:                ipopt-hs
version:             0.2.0.0
synopsis:            haskell binding to ipopt including automatic differentiation
description:  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
              `/usr/include/coin/IpStdCInterface.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.Storable" and "Data.Vector" might 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.h@ has Number =/= 'CDouble'
             .
              * no binding to SetIntermediateCallback
             .
              * garbage collection of 'IpProblem' won't free C-side resources
license:             BSD3
license-file:        LICENSE
author:              Adam Vogt <vogt.adam@gmail.com>
maintainer:          Adam Vogt <vogt.adam@gmail.com>
category:            Optimisation Math Numeric
build-type:          Simple
cabal-version:       >=1.8

source-repository head
    type:   darcs
    location: http://code.haskell.org/~aavogt/ipopt-hs

library
  exposed-modules:     Ipopt, Ipopt.Raw, Ipopt.Sparsity, Ipopt.NLP
  other-modules:       C2HS
  build-depends:       base ==4.6.*,
                       vector ==0.10.*,
                       ad ==3.4.*,
                       containers,
                       mtl == 2.*,
                       lens
  pkgconfig-depends:   ipopt
  build-tools: c2hs

executable ipopt-hs_Test1
  main-is:             Test1.hs
  build-depends:       base ==4.6.*, vector ==0.10.*, ipopt-hs
  hs-source-dirs:      examples
  other-modules: Paths_ipopt_hs

executable ipopt-hs_Test2
  main-is:             Test2.hs
  build-depends:       base ==4.6.*, vector ==0.10.*, ipopt-hs
  hs-source-dirs:      examples

executable ipopt-hs_Test3
  main-is:             Test3.hs
  build-depends:       base ==4.6.*, vector ==0.10.*, ipopt-hs, lens, mtl
  hs-source-dirs:      examples