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