glpk-hs 0.7 → 0.8
raw patch · 5 files changed
+9/−5 lines, 5 files
Files
- examples/example1.hs +1/−1
- glpk-hs.cabal +1/−1
- src/Data/LinearProgram/Common.hs +3/−3
- src/Data/LinearProgram/GLPK/Types.hs +3/−0
- src/Data/LinearProgram/LinExpr.hs +1/−0
examples/example1.hs view
@@ -17,7 +17,7 @@ lp = execLPM $ do setDirection Max setObjective objFun- leqTo (add $ map (1 *&) ["x1", "x2", "x3"]) 100+ leqTo (Data.LinearProgram.sum $ map (1 *&) ["x1", "x2", "x3"]) 100 leqTo (10 *& "x1" + 4 *& "x2" + 5 *& "x3") 600 leqTo (linCombination [(2, "x1"), (2, "x2"), (6, "x3")]) 300 varGeq "x1" 0
glpk-hs.cabal view
@@ -1,5 +1,5 @@ Name: glpk-hs-Version: 0.7+Version: 0.8 Author: Louis Wasserman License: BSD3 License-file: LICENSE
src/Data/LinearProgram/Common.hs view
@@ -13,7 +13,7 @@ import GHC.Exts (build) {-# RULES- "assocs" assocs = \ m -> build (\ c n -> foldWithKey (curry c) n m);- "elems" elems = \ m -> build (\ c n -> foldWithKey (const c) n m);- "keys" keys = \ m -> build (\ c n -> foldWithKey (\ k _ -> c k) n m);+ "assocs" assocs = \ m -> build (\ c n -> foldrWithKey (curry c) n m);+ "elems" elems = \ m -> build (\ c n -> foldrWithKey (const c) n m);+ "keys" keys = \ m -> build (\ c n -> foldrWithKey (\ k _ -> c k) n m); #-}
src/Data/LinearProgram/GLPK/Types.hs view
@@ -4,6 +4,7 @@ import Control.Concurrent (runInBoundThread) import Control.Exception (bracket)+import qualified Control.Monad.Fail as Fail import Control.Monad.Trans (MonadIO (..)) import Control.Monad (ap) @@ -35,6 +36,8 @@ return x = GLP $ \ _ -> return x m >>= k = GLP $ \ lp -> do x <- execGLPK m lp execGLPK (k x) lp+instance Fail.MonadFail GLPK where+ fail s = GLP . const $ Fail.fail s instance Functor GLPK where fmap f (GLP k) = GLP $ \p -> fmap f (k p)
src/Data/LinearProgram/LinExpr.hs view
@@ -5,6 +5,7 @@ import Data.LinearProgram.Types import Algebra.Classes+import Algebra.Linear import Data.Functor import Data.Foldable