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

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

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

Properties

Versions 0.0, 0.0.0.1, 0.0.0.2, 0.0.1
Change log None available
Dependencies base (>=4.5 && <5), comfort-array (>=0.4 && <0.6), concurrent-split (>=0.0.1 && <0.1), 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.1
head: darcs get https://hub.darcs.net/thielema/coinor-clp/
Uploaded by HenningThielemann at 2024-01-03T19:13:21Z

Modules

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