vertexenum-0.1.1.0: src/Geometry/VertexEnum/Constraint.hs
{-# LANGUAGE InstanceSigs #-}
module Geometry.VertexEnum.Constraint
( Sense (..)
, Constraint (..)
, (.>=.)
, (.<=.)
, (.>=)
, (.<=) )
where
import Geometry.VertexEnum.LinearCombination ( LinearCombination, constant )
data Sense = Gt | Lt
deriving Eq
instance Show Sense where
show :: Sense -> String
show Gt = ">="
show Lt = "<="
data Constraint a = Constraint (LinearCombination a) Sense (LinearCombination a)
instance Show a => Show (Constraint a) where
show :: Constraint a -> String
show (Constraint lhs sense rhs) = show lhs ++ " " ++ show sense ++ " " ++ show rhs
(.>=.) :: LinearCombination a -> LinearCombination a -> Constraint a
(.>=.) lhs = Constraint lhs Gt
(.<=.) :: LinearCombination a -> LinearCombination a -> Constraint a
(.<=.) lhs = Constraint lhs Lt
(.>=) :: LinearCombination a -> a -> Constraint a
(.>=) lhs x = (.>=.) lhs (constant x)
(.<=) :: LinearCombination a -> a -> Constraint a
(.<=) lhs x = (.<=.) lhs (constant x)
infix 4 .<=., .>=.