aboutsummaryrefslogtreecommitdiff
path: root/Math/LinProg/Compile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Math/LinProg/Compile.hs')
-rw-r--r--Math/LinProg/Compile.hs37
1 files changed, 0 insertions, 37 deletions
diff --git a/Math/LinProg/Compile.hs b/Math/LinProg/Compile.hs
deleted file mode 100644
index c14d45b..0000000
--- a/Math/LinProg/Compile.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-{-# LANGUAGE TemplateHaskell, FlexibleInstances, ScopedTypeVariables #-}
-
-module Math.LinProg.Compile (
- compile
- ,Equation
- ,CompilerS(..)
- ,objective
- ,equals
- ,leqs
-) where
-
-import Math.LinProg.Types
-import Control.Lens
-import Control.Monad.Free
-
-type Equation t v = (LinExpr t v, t) -- LHS and RHS
-
-data CompilerS t v = CompilerS {
- _objective :: LinExpr t v
- ,_equals :: [Equation t v]
- ,_leqs :: [Equation t v]
-} deriving (Eq)
-
-$(makeLenses ''CompilerS)
-
-compile :: (Num t, Show t, Ord t, Eq v) => LinProg t v () -> CompilerS t v
-compile ast = compile' ast initCompilerS where
- compile' (Free (Objective a c)) state = compile' c $ state & objective +~ a
- compile' (Free (EqConstraint a b c)) state = compile' c $ state & equals %~ (split (a-b):)
- compile' (Free (LeqConstraint a b c)) state = compile' c $ state & leqs %~ (split (a-b):)
- compile' _ state = state
-
- initCompilerS = CompilerS
- 0
- []
- []
-