packages feed

ipopt-hs-0.3.0.0: ipopt-hs.cabal

name:                ipopt-hs
version:             0.3.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.10

flag build_examples
  description: build executable from examples/
  default: False

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

library
  exposed-modules:     Ipopt,
                       Ipopt.AnyRF,
                       Ipopt.Raw,
                       Ipopt.Sparsity,
                       Ipopt.NLP,
                       Ipopt.PP
  other-modules:       C2HS
  build-depends:       base < 5,
                       vector ==0.10.*,
                       ad ==3.4.*,
                       containers == 0.5.*,
                       mtl == 2.*,
                       lens >= 3.10,
                       ansi-wl-pprint >= 0.6.7,
                       vector-space >= 0.8.6
  default-language:    Haskell2010
  default-extensions:  ConstraintKinds,
                       FlexibleContexts,
                       FlexibleInstances,
                       GeneralizedNewtypeDeriving,
                       RankNTypes,
                       TupleSections,
                       TypeFamilies
  other-extensions:    ForeignFunctionInterface,
                       TemplateHaskell
  pkgconfig-depends:   ipopt
  build-tools: c2hs



executable ipopt-hs_Tests
  main-is:             AllTests.hs
  build-depends:       base <= 5, vector ==0.10.*,
                       ipopt-hs, lens, mtl, ansi-wl-pprint,
                       Rlang-QQ, vector-space, splines, ad

  hs-source-dirs:      examples
  default-language:    Haskell2010
  other-modules: Paths_ipopt_hs
  if !flag(build_examples)
    buildable:         False