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 +1/−1
- Data/LinearProgram/Spec.hs +3/−3
- glpk-hs.cabal +26/−25
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