module Numeric.Netlib.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, Int -> Order
Order -> Int
Order -> [Order]
Order -> Order
Order -> Order -> [Order]
Order -> Order -> Order -> [Order]
(Order -> Order)
-> (Order -> Order)
-> (Int -> Order)
-> (Order -> Int)
-> (Order -> [Order])
-> (Order -> Order -> [Order])
-> (Order -> Order -> [Order])
-> (Order -> Order -> Order -> [Order])
-> Enum Order
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: Order -> Order
succ :: Order -> Order
$cpred :: Order -> Order
pred :: Order -> Order
$ctoEnum :: Int -> Order
toEnum :: Int -> Order
$cfromEnum :: Order -> Int
fromEnum :: Order -> Int
$cenumFrom :: Order -> [Order]
enumFrom :: Order -> [Order]
$cenumFromThen :: Order -> Order -> [Order]
enumFromThen :: Order -> Order -> [Order]
$cenumFromTo :: Order -> Order -> [Order]
enumFromTo :: Order -> Order -> [Order]
$cenumFromThenTo :: Order -> Order -> Order -> [Order]
enumFromThenTo :: Order -> Order -> Order -> [Order]
Enum, Order
Order -> Order -> Bounded Order
forall a. a -> a -> Bounded a
$cminBound :: Order
minBound :: Order
$cmaxBound :: Order
maxBound :: Order
Bounded)

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