packages feed

glpk-hs 0.3.1 → 0.3.2

raw patch · 3 files changed

+30/−29 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Control.Monad.LPMonad: equal :: (Ord v, Group c, MonadState (LP v c) m) => LinFunc v c -> LinFunc v c -> m ()
- Control.Monad.LPMonad: equal' :: (Ord v, Group c, MonadState (LP v c) m) => String -> LinFunc v c -> LinFunc v c -> m ()
- Control.Monad.LPMonad: equalTo :: MonadState (LP v c) m => LinFunc v c -> c -> m ()
- Control.Monad.LPMonad: equalTo' :: MonadState (LP v c) m => String -> LinFunc v c -> c -> m ()
- Control.Monad.LPMonad: geq :: (Ord v, Group c, MonadState (LP v c) m) => LinFunc v c -> LinFunc v c -> m ()
- Control.Monad.LPMonad: geq' :: (Ord v, Group c, MonadState (LP v c) m) => String -> LinFunc v c -> LinFunc v c -> m ()
- Control.Monad.LPMonad: geqTo :: MonadState (LP v c) m => LinFunc v c -> c -> m ()
- Control.Monad.LPMonad: geqTo' :: MonadState (LP v c) m => String -> LinFunc v c -> c -> m ()
- Control.Monad.LPMonad: leq :: (Ord v, Group c, MonadState (LP v c) m) => LinFunc v c -> LinFunc v c -> m ()
- Control.Monad.LPMonad: leq' :: (Ord v, Group c, MonadState (LP v c) m) => String -> LinFunc v c -> LinFunc v c -> m ()
- Control.Monad.LPMonad: leqTo :: MonadState (LP v c) m => LinFunc v c -> c -> m ()
- Control.Monad.LPMonad: leqTo' :: MonadState (LP v c) m => String -> LinFunc v c -> c -> m ()
- Control.Monad.LPMonad: quickSolveLP :: (Ord v, Real c, MonadState (LP v c) m, MonadIO m) => m (ReturnCode, Maybe (Double, Map v Double))
- Control.Monad.LPMonad: quickSolveLP' :: (Ord v, Real c, MonadState (LP v c) m, MonadIO m) => m (ReturnCode, Maybe (Double, Map v Double, [RowValue v c]))
- Control.Monad.LPMonad: quickSolveMIP :: (Ord v, Real c, MonadState (LP v c) m, MonadIO m) => m (ReturnCode, Maybe (Double, Map v Double))
- Control.Monad.LPMonad: quickSolveMIP' :: (Ord v, Real c, MonadState (LP v c) m, MonadIO m) => m (ReturnCode, Maybe (Double, Map v Double, [RowValue v c]))
- Control.Monad.LPMonad: varEq :: (Ord v, Ord c, MonadState (LP v c) m) => v -> c -> m ()
- Control.Monad.LPMonad: varGeq :: (Ord v, Ord c, MonadState (LP v c) m) => v -> c -> m ()
- Control.Monad.LPMonad: varLeq :: (Ord v, Ord c, MonadState (LP v c) m) => v -> c -> m ()
- Data.LinearProgram.GLPK.Solver: mipDefaults :: GLPOpts
- Data.LinearProgram.GLPK.Solver: simplexDefaults :: GLPOpts
+ Control.Monad.LPMonad: equal', geq', leq' :: (Ord v, Group c, MonadState (LP v c) m) => String -> LinFunc v c -> LinFunc v c -> m ()
+ Control.Monad.LPMonad: equal, geq, leq :: (Ord v, Group c, MonadState (LP v c) m) => LinFunc v c -> LinFunc v c -> m ()
+ Control.Monad.LPMonad: equalTo', geqTo', leqTo' :: MonadState (LP v c) m => String -> LinFunc v c -> c -> m ()
+ Control.Monad.LPMonad: equalTo, geqTo, leqTo :: MonadState (LP v c) m => LinFunc v c -> c -> m ()
+ Control.Monad.LPMonad: quickSolveLP', quickSolveMIP' :: (Ord v, Real c, MonadState (LP v c) m, MonadIO m) => m (ReturnCode, Maybe (Double, Map v Double, [RowValue v c]))
+ Control.Monad.LPMonad: quickSolveLP, quickSolveMIP :: (Ord v, Real c, MonadState (LP v c) m, MonadIO m) => m (ReturnCode, Maybe (Double, Map v Double))
+ Control.Monad.LPMonad: varEq, varGeq, varLeq :: (Ord v, Ord c, MonadState (LP v c) m) => v -> c -> m ()
+ Data.LinearProgram.GLPK.Solver: simplexDefaults, mipDefaults :: GLPOpts
- Control.Monad.LPMonad.Supply.Class: class Monad m => MonadSupply s m | m -> s
+ Control.Monad.LPMonad.Supply.Class: class Monad m => MonadSupply s m | m -> s where supplyNew = liftM head (supplyN 1) supplyN n = replicateM n supplyNew
- Data.Algebra: class Ring f => Field f
+ Data.Algebra: class Ring f => Field f where inv x = one /# x a /# b = a *# inv b
- Data.Algebra: class Group g
+ Data.Algebra: class Group g where a ^+^ b = a ^-^ neg b a ^-^ b = a ^+^ neg b neg a = zero ^-^ a

Files

Data/LinearProgram/GLPK/Internal.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE RecordWildCards, ScopedTypeVariables, ForeignFunctionInterface #-}+{-# LANGUAGE RecordWildCards, ScopedTypeVariables, ForeignFunctionInterface, BangPatterns #-} module Data.LinearProgram.GLPK.Internal (writeProblem, solveSimplex, mipSolve, 	getObjVal, getRowPrim, getColPrim, mipObjVal, mipRowVal, mipColVal, getBadRay) where {-(writeProblem, addCols,
Data/LinearProgram/Spec.hs view
@@ -9,7 +9,7 @@ import Data.Char (isSpace) import Data.Monoid import Data.Functor-import Data.Map hiding (map)+import Data.Map hiding (map, foldl)  import Text.ParserCombinators.ReadP @@ -45,7 +45,7 @@ 	UBound x -> expr ++ " <= " ++ show x 	Bound l u -> show l ++ " <= " ++ expr ++ " <= " ++ show u -showFunc :: (Show v, Num c, Ord c) => LinFunc v c -> String+showFunc :: (Show v, Num c, Ord c, Show c) => LinFunc v c -> String showFunc func = case assocs func of 	[]	-> "0" 	((v,c):vcs) ->@@ -61,7 +61,7 @@ 	| isSpace c	= '_' 	| otherwise	= c -instance (Show v, Num c, Ord c) => Show (Constraint v c) where+instance (Show v, Num c, Ord c, Show c) => Show (Constraint v c) where 	show (Constr lab func bds) = maybe "" (++ ": ") lab ++ 		showBds (showFunc func) bds 
glpk-hs.cabal view
@@ -1,5 +1,5 @@ Name:           glpk-hs-Version:        0.3.1+Version:        0.3.2 Author:         Louis Wasserman License:        BSD3 License-file:   LICENSE@@ -23,27 +23,28 @@  extra-source-files: examples/example1.hs -Build-Depends:    base >= 4 && < 5, array, containers, mtl, deepseq-Exposed-modules:  Data.LinearProgram,-                  Data.LinearProgram.Common,-		  Data.LinearProgram.LinExpr,-                  Data.LinearProgram.GLPK,-                  Data.LinearProgram.GLPK.Solver,-                  Data.LinearProgram.GLPK.IO,-                  Data.Algebra,-                  Control.Monad.LPMonad,-                  Control.Monad.LPMonad.Supply,-                  Control.Monad.LPMonad.Supply.Class-Other-modules:    Data.LinearProgram.GLPK.Internal,	-                  Data.LinearProgram.GLPK.Types,-                  Data.LinearProgram.GLPK.Common,-                  Data.LinearProgram.GLPK.IO.Internal,-                  Control.Monad.LPMonad.Internal,-                  Data.LinearProgram.Spec,-                  Data.LinearProgram.Types,-                  Data.Algebra.Group,-                  Data.Algebra.Ring,-                  Data.Algebra.Module,-		  Data.Algebra.Field-c-sources:        glpk/glpk.c-extra-libraries:  glpk+library+  Build-Depends:    base >= 4 && < 5, array, containers, mtl, deepseq+  Exposed-modules:  Data.LinearProgram,+                    Data.LinearProgram.Common,+                    Data.LinearProgram.LinExpr,+                    Data.LinearProgram.GLPK,+                    Data.LinearProgram.GLPK.Solver,+                    Data.LinearProgram.GLPK.IO,+                    Data.Algebra,+                    Control.Monad.LPMonad,+                    Control.Monad.LPMonad.Supply,+                    Control.Monad.LPMonad.Supply.Class+  Other-modules:    Data.LinearProgram.GLPK.Internal,	+                    Data.LinearProgram.GLPK.Types,+                    Data.LinearProgram.GLPK.Common,+                    Data.LinearProgram.GLPK.IO.Internal,+                    Control.Monad.LPMonad.Internal,+                    Data.LinearProgram.Spec,+                    Data.LinearProgram.Types,+                    Data.Algebra.Group,+                    Data.Algebra.Ring,+                    Data.Algebra.Module,+                    Data.Algebra.Field+  c-sources:        glpk/glpk.c+  extra-libraries:  glpk