A simple grammar for building linear equations and inclusive inequalities.
|Latest on Hackage:||0.0.2.1|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
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 :: Rational) .*. EVar "x" .+. (3 :: Rational) .*. EVar "y" .+. (-4 :: Rational) .*. EVar "z" .+. ELit 12 .<=. (43 :: Rational) .*. EVar "x" .+. (-7 :: Rational) .*. EVar "b" .+. (8 :: Rational) .*. 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,
stdF = standardForm f