----------------------------------------------------------------------------- -- | -- Module : BLAS.Types -- Copyright : Copyright (c) , Patrick Perry -- License : BSD3 -- Maintainer : Patrick Perry -- Stability : experimental -- module BLAS.Types ( Order(..), Trans(..), UpLo(..), Diag(..), Side(..), flipOrder, flipTrans, flipUpLo, flipSide, ) where -- | Matrix element storage order data Order = RowMajor | ColMajor deriving (Eq, Show) -- | Transpose type data Trans = NoTrans | ConjTrans deriving (Eq,Show) -- | Lower or upper triangular storage data UpLo = Upper | Lower deriving (Eq,Show) -- | Diagonal storage data Diag = Unit | NonUnit deriving (Eq,Show) -- | Multiplication side data Side = LeftSide | RightSide deriving (Eq,Show) flipOrder :: Order -> Order flipOrder RowMajor = ColMajor flipOrder ColMajor = RowMajor flipTrans :: Trans -> Trans flipTrans NoTrans = ConjTrans flipTrans ConjTrans = NoTrans flipUpLo :: UpLo -> UpLo flipUpLo Upper = Lower flipUpLo Lower = Upper flipSide :: Side -> Side flipSide LeftSide = RightSide flipSide RightSide = LeftSide