Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- data LinAst
- (.+.) :: LinAst -> LinAst -> LinAst
- class Coefficient x y where
- multLin :: LinAst -> LinAst
- data LinVar = LinVar {}
- hasName :: LinVar -> LinVar -> Bool
- data LinExpr = LinExpr {
- exprCoeffs :: [LinVar]
- exprConst :: Double
- mergeLinExpr :: LinExpr -> LinExpr -> LinExpr
- addLin :: LinAst -> LinExpr
- removeDupLin :: LinExpr -> LinExpr
- makeLinExpr :: LinAst -> LinExpr
- data Ineq
- (.==.) :: LinAst -> LinAst -> Ineq
- (.<=.) :: LinAst -> LinAst -> Ineq
- (.=>.) :: LinAst -> LinAst -> Ineq
- data IneqStdForm
- standardize :: Ineq -> Ineq
- standardForm :: Ineq -> IneqStdForm
User-facing API
User-facing abstract syntax tree
class Coefficient x y where Source
multLin :: LinAst -> LinAst Source
Pushes ECoeff
down the tree, leaving EAdd
at the top level.
After using this funciton, all ECoeff
constructors LinAst
parameter will
be EVar
.
Linear Expressions
Linear expressions suited for normal and standard form.
LinExpr | |
|
mergeLinExpr :: LinExpr -> LinExpr -> LinExpr Source
removeDupLin :: LinExpr -> LinExpr Source
Merged duplicate LinVar
s in a LinExpr
. Should be used after addLin
.
makeLinExpr :: LinAst -> LinExpr Source
Linear Inequalities
Standard Form
data IneqStdForm Source
standardize :: Ineq -> Ineq Source
standardForm :: Ineq -> IneqStdForm Source