coinor-clp: Linear Programming using COIN-OR/CLP and comfort-array

[ bsd3, library, math ] [ Propose Tags ]

Simple interface to linear programming functions provided by COIN-OR using the flexible Array shape framework from comfort-array.

E.g. you can use Shape.Tuple to convert safely between nested tuples and arrays with the same number of elements.

type X = Shape.Element
type PairShape = Shape.NestedTuple Shape.TupleIndex (X,X)

case Shape.indexTupleFromShape (Shape.static :: PairShape) of
  (posIx,negIx) ->
    case mapSnd (mapSnd Array.toTuple) <$>
         LP.simplex [] [[1.*posIx, (-1).*negIx] ==. 314]
           (LP.Minimize,
            Array.fromTuple (23,42) :: Array PairShape Double)
      of
        (Right (LP.Optimal, (absol, (pos, neg)))) ->
          printf "absol %f,  pos %f, neg %f\n" absol pos neg
        _ -> fail "COINOR solver failed"

Alternatives: comfort-glpk, hmatrix-glpk, glpk-hs

Flags

Manual Flags

NameDescriptionDefault
debug

Enable debug output

Disabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0, 0.0.0.1, 0.0.0.2
Dependencies base (>=4.5 && <5), comfort-array (>=0.4 && <0.6), deepseq (>=1.3 && <1.6), linear-programming (>=0.0 && <0.1), non-empty (>=0.3.2 && <0.4), QuickCheck (>=2 && <3), transformers (>=0.3 && <0.7), utility-ht (>=0.0.16 && <0.1) [details]
License BSD-3-Clause
Author Henning Thielemann <haskell@henning-thielemann.de>
Maintainer Henning Thielemann <haskell@henning-thielemann.de>
Category Math
Source repo this: darcs get https://hub.darcs.net/thielema/coinor-clp/ --tag 0.0.0.2
head: darcs get https://hub.darcs.net/thielema/coinor-clp/
Uploaded by HenningThielemann at 2024-01-03T18:55:42Z
Distributions LTSHaskell:0.0.0.2, Stackage:0.0.0.2
Downloads 134 total (13 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]