# linear-grammar: A simple grammar for building linear equations and inclusive inequalities.

[ algebra, bsd3, library, math ] [ Propose Tags ]

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, use the sandardForm function:

stdF = standardForm f
Versions [RSS] [faq] 0.0.0.1, 0.0.0.2, 0.0.0.3, 0.0.0.4, 0.0.0.5, 0.0.0.6, 0.0.0.7, 0.0.1, 0.0.1.1, 0.0.1.2, 0.0.1.3, 0.0.1.4, 0.0.1.5, 0.0.1.6, 0.0.2, 0.0.2.1 (info) base (>=4.6 && <5), containers, QuickCheck [details] BSD-3-Clause Athan Clark Athan Clark Math, Algebra head: git clone https://github.com/athanclark/linear-grammar.git by athanclark at 2015-06-13T14:27:27Z NixOS:0.0.2.1 5695 total (75 in the last 30 days) (no votes yet) [estimated by Bayesian average] λ λ λ Docs uploaded by userBuild status unknown

[Index]