-- | A simpler representation of programs. -- The frontend representation ("Numeric.Limp.Program") has many different kinds of constraints -- (@<=@, @<@, @==@, @between@), as well as constant additions on each linear function -- (eg. @x + 2y + 5@). -- The so-called canonical representation removes the constant addition from each linear constraint, -- and converts each constraint (@Lin Op Lin@) to (@Num <= Lin <= Num@). -- -- The most interesting function here is 'Numeric.Limp.Canon.Convert.program' for converting -- from Program representation to Canon. module Numeric.Limp.Canon ( module Numeric.Limp.Canon.Linear , module Numeric.Limp.Canon.Constraint , module Numeric.Limp.Canon.Program , module Numeric.Limp.Canon.Convert ) where import Numeric.Limp.Canon.Linear import Numeric.Limp.Canon.Constraint import Numeric.Limp.Canon.Program import Numeric.Limp.Canon.Convert