module BLAS.Types (
OrderEnum(..),
flipOrder,
TransEnum(..),
flipTrans,
UpLoEnum(..),
flipUpLo,
DiagEnum(..),
SideEnum(..),
flipSide,
ConjEnum(..),
flipConj,
) where
data OrderEnum = RowMajor | ColMajor deriving (Eq, Show)
flipOrder :: OrderEnum -> OrderEnum
flipOrder RowMajor = ColMajor
flipOrder ColMajor = RowMajor
data TransEnum = NoTrans | ConjTrans deriving (Eq, Show)
flipTrans :: TransEnum -> TransEnum
flipTrans NoTrans = ConjTrans
flipTrans ConjTrans = NoTrans
data UpLoEnum = Upper | Lower deriving (Eq, Show)
flipUpLo :: UpLoEnum -> UpLoEnum
flipUpLo Upper = Lower
flipUpLo Lower = Upper
data DiagEnum = Unit | NonUnit deriving (Eq, Show)
data SideEnum = LeftSide | RightSide deriving (Eq, Show)
flipSide :: SideEnum -> SideEnum
flipSide LeftSide = RightSide
flipSide RightSide = LeftSide
data ConjEnum = NoConj | Conj deriving (Eq, Show)
flipConj :: ConjEnum -> ConjEnum
flipConj NoConj = Conj
flipConj Conj = NoConj