netlib-ffi 0.1.1 → 0.1.2
raw patch · 3 files changed
+69/−6 lines, 3 filesdep +deepseq
Dependencies added: deepseq
Files
- netlib-ffi.cabal +9/−6
- src/Numeric/Netlib/Layout.hs +15/−0
- src/Numeric/Netlib/Modifier.hs +45/−0
netlib-ffi.cabal view
@@ -1,10 +1,10 @@ Name: netlib-ffi-Version: 0.1.1+Version: 0.1.2 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de> Maintainer: Henning Thielemann <haskell@henning-thielemann.de>-Homepage: http://hub.darcs.net/thielema/netlib-ffi/+Homepage: https://hub.darcs.net/thielema/netlib-ffi/ Category: Math Synopsis: Helper modules for FFI to BLAS and LAPACK Description:@@ -20,24 +20,27 @@ Build-Type: Simple Source-Repository this- Tag: 0.1.1+ Tag: 0.1.2 Type: darcs- Location: http://hub.darcs.net/thielema/netlib-ffi/+ Location: https://hub.darcs.net/thielema/netlib-ffi/ Source-Repository head Type: darcs- Location: http://hub.darcs.net/thielema/netlib-ffi/+ Location: https://hub.darcs.net/thielema/netlib-ffi/ Library Build-Depends: guarded-allocation >=0.0 && <0.1, storable-complex >=0.2.2 && <0.3,- transformers >=0.2 && <0.6,+ transformers >=0.2 && <0.7,+ deepseq >=1.3 && <1.6, base >=4.5 && <5 GHC-Options: -Wall -fwarn-missing-import-lists Hs-Source-Dirs: src Default-Language: Haskell98 Exposed-Modules:+ Numeric.Netlib.Modifier+ Numeric.Netlib.Layout Numeric.Netlib.Class Numeric.Netlib.Utility
+ src/Numeric/Netlib/Layout.hs view
@@ -0,0 +1,15 @@+module Numeric.Netlib.Layout where++import Control.DeepSeq (NFData, rnf)+++data Order = RowMajor | ColumnMajor+ deriving (Eq, Show, Enum, Bounded)++instance NFData Order where+ rnf RowMajor = ()+ rnf ColumnMajor = ()++flipOrder :: Order -> Order+flipOrder RowMajor = ColumnMajor+flipOrder ColumnMajor = RowMajor
+ src/Numeric/Netlib/Modifier.hs view
@@ -0,0 +1,45 @@+module Numeric.Netlib.Modifier where++import Numeric.Netlib.Layout (Order, flipOrder)++import Data.Monoid (Monoid, mempty, mappend)+import Data.Semigroup (Semigroup, (<>))++++data Transposition = NonTransposed | Transposed+ deriving (Eq, Show, Enum, Bounded)++instance Semigroup Transposition where+ x<>y = if x==y then NonTransposed else Transposed++instance Monoid Transposition where+ mempty = NonTransposed+ mappend = (<>)++transposeOrder :: Transposition -> Order -> Order+transposeOrder NonTransposed = id+transposeOrder Transposed = flipOrder++++data Conjugation = NonConjugated | Conjugated+ deriving (Eq, Show, Enum, Bounded)++instance Semigroup Conjugation where+ x<>y = if x==y then NonConjugated else Conjugated++instance Monoid Conjugation where+ mempty = NonConjugated+ mappend = (<>)+++data Inversion = NonInverted | Inverted+ deriving (Eq, Show, Enum, Bounded)++instance Semigroup Inversion where+ x<>y = if x==y then NonInverted else Inverted++instance Monoid Inversion where+ mempty = NonInverted+ mappend = (<>)