linear-grammar-0.0.1.3: A simple grammar for building linear equations and inclusive inequalities.
This library provides some simple tools for building abstract syntax trees, representing linear equations and (inclusive) inequalities. As an example:
12x + 3y - 4z + 12 <= 43x - 7b + 8q
Would look like...
f = (12 :: Double) .*. EVar "x" .+.
(3 :: Double) .*. EVar "y" .+.
(-4 :: Double) .*. EVar "z" .+.
ELit 12
.<=.
(43 :: Double) .*. EVar "x" .+.
(-7 :: Double) .*. EVar "b" .+.
(8 :: Double) .*. EVar "q"I've added some overloading functionality, to help ease the verbosity of the
above statements - an IsString instance, and some other utilities. To pack
the equation into standard form,
use the sandardForm function:
stdF = standardForm f
Modules
- Linear