{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Numeric.BLAS.Matrix.Layout where import Control.DeepSeq (NFData, rnf) data Order = RowMajor | ColumnMajor deriving (Order -> Order -> Bool (Order -> Order -> Bool) -> (Order -> Order -> Bool) -> Eq Order forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Order -> Order -> Bool == :: Order -> Order -> Bool $c/= :: Order -> Order -> Bool /= :: Order -> Order -> Bool Eq, Int -> Order -> ShowS [Order] -> ShowS Order -> String (Int -> Order -> ShowS) -> (Order -> String) -> ([Order] -> ShowS) -> Show Order forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Order -> ShowS showsPrec :: Int -> Order -> ShowS $cshow :: Order -> String show :: Order -> String $cshowList :: [Order] -> ShowS showList :: [Order] -> ShowS Show) instance NFData Order where rnf :: Order -> () rnf Order RowMajor = () rnf Order ColumnMajor = () flipOrder :: Order -> Order flipOrder :: Order -> Order flipOrder Order RowMajor = Order ColumnMajor flipOrder Order ColumnMajor = Order RowMajor transposeFromOrder :: Order -> Char transposeFromOrder :: Order -> Char transposeFromOrder Order RowMajor = Char 'T' transposeFromOrder Order ColumnMajor = Char 'N'