highs-lp: Linear Programming using HiGHS and comfort-array

[ bsd3, library, math ] [ Propose Tags ]

Simple interface to linear programming functions provided by HiGHS 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 fmap (mapSnd Array.toTuple) $ snd $
         LP.solve LP.choose [] [[1.*posIx, (-1).*negIx] ==. 314]
           (LP.Minimize,
            Array.fromTuple (23,42) :: Array PairShape Double)
      of
        Just (absol, (pos, neg)) ->
          printf "absol %f,  pos %f, neg %f\n" absol pos neg
        _ -> fail "HiGHS solver failed"

Alternatives: coinor-clp, 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

  • No Candidates
Versions [RSS] 0.0
Dependencies base (>=4.5 && <5), comfort-array (>=0.5.4 && <0.6), deepseq (>=1.3 && <1.6), guarded-allocation (>=0.0.1 && <0.1), linear-programming (>=0.0 && <0.1), non-empty (>=0.3.2 && <0.4), QuickCheck (>=2 && <3), storable-record (>=0.0.5 && <0.1), 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/highs-lp/ --tag 0.0
head: darcs get https://hub.darcs.net/thielema/highs-lp/
Uploaded by HenningThielemann at 2023-12-22T19:40:12Z
Distributions
Downloads 27 total (4 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]