diff options
Diffstat (limited to 'packages/base')
-rw-r--r-- | packages/base/hmatrix.cabal | 1 | ||||
-rw-r--r-- | packages/base/src/Internal/Container.hs | 5 | ||||
-rw-r--r-- | packages/base/src/Internal/Convolution.hs | 4 | ||||
-rw-r--r-- | packages/base/src/Internal/Modular.hs | 8 | ||||
-rw-r--r-- | packages/base/src/Internal/Util.hs | 4 | ||||
-rw-r--r-- | packages/base/src/Numeric/LinearAlgebra.hs | 4 | ||||
-rw-r--r-- | packages/base/src/Numeric/LinearAlgebra/HMatrix.hs | 4 | ||||
-rw-r--r-- | packages/base/src/Numeric/LinearAlgebra/Static.hs | 4 | ||||
-rw-r--r-- | packages/base/src/Numeric/Matrix.hs | 8 |
9 files changed, 41 insertions, 1 deletions
diff --git a/packages/base/hmatrix.cabal b/packages/base/hmatrix.cabal index 9d03f2b..ab3fff8 100644 --- a/packages/base/hmatrix.cabal +++ b/packages/base/hmatrix.cabal | |||
@@ -46,6 +46,7 @@ library | |||
46 | split, | 46 | split, |
47 | bytestring, | 47 | bytestring, |
48 | storable-complex, | 48 | storable-complex, |
49 | semigroups, | ||
49 | vector >= 0.8 | 50 | vector >= 0.8 |
50 | 51 | ||
51 | hs-source-dirs: src | 52 | hs-source-dirs: src |
diff --git a/packages/base/src/Internal/Container.hs b/packages/base/src/Internal/Container.hs index b379530..1520489 100644 --- a/packages/base/src/Internal/Container.hs +++ b/packages/base/src/Internal/Container.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
1 | {-# LANGUAGE FlexibleContexts #-} | 2 | {-# LANGUAGE FlexibleContexts #-} |
2 | {-# LANGUAGE FlexibleInstances #-} | 3 | {-# LANGUAGE FlexibleInstances #-} |
3 | {-# LANGUAGE MultiParamTypeClasses #-} | 4 | {-# LANGUAGE MultiParamTypeClasses #-} |
@@ -29,7 +30,9 @@ import Internal.Matrix | |||
29 | import Internal.Element | 30 | import Internal.Element |
30 | import Internal.Numeric | 31 | import Internal.Numeric |
31 | import Internal.Algorithms(Field,linearSolveSVD,Herm,mTm) | 32 | import Internal.Algorithms(Field,linearSolveSVD,Herm,mTm) |
32 | 33 | #if MIN_VERSION_base(4,11,0) | |
34 | import Prelude hiding ((<>)) | ||
35 | #endif | ||
33 | ------------------------------------------------------------------ | 36 | ------------------------------------------------------------------ |
34 | 37 | ||
35 | {- | Creates a real vector containing a range of values: | 38 | {- | Creates a real vector containing a range of values: |
diff --git a/packages/base/src/Internal/Convolution.hs b/packages/base/src/Internal/Convolution.hs index 384fdf8..004e1ff 100644 --- a/packages/base/src/Internal/Convolution.hs +++ b/packages/base/src/Internal/Convolution.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
1 | {-# LANGUAGE FlexibleContexts #-} | 2 | {-# LANGUAGE FlexibleContexts #-} |
2 | ----------------------------------------------------------------------------- | 3 | ----------------------------------------------------------------------------- |
3 | {- | | 4 | {- | |
@@ -23,6 +24,9 @@ import Internal.Numeric | |||
23 | import Internal.Element | 24 | import Internal.Element |
24 | import Internal.Conversion | 25 | import Internal.Conversion |
25 | import Internal.Container | 26 | import Internal.Container |
27 | #if MIN_VERSION_base(4,11,0) | ||
28 | import Prelude hiding ((<>)) | ||
29 | #endif | ||
26 | 30 | ||
27 | 31 | ||
28 | vectSS :: Element t => Int -> Vector t -> Matrix t | 32 | vectSS :: Element t => Int -> Vector t -> Matrix t |
diff --git a/packages/base/src/Internal/Modular.hs b/packages/base/src/Internal/Modular.hs index f3c59a8..9d51444 100644 --- a/packages/base/src/Internal/Modular.hs +++ b/packages/base/src/Internal/Modular.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
1 | {-# LANGUAGE DataKinds #-} | 2 | {-# LANGUAGE DataKinds #-} |
2 | {-# LANGUAGE KindSignatures #-} | 3 | {-# LANGUAGE KindSignatures #-} |
3 | {-# LANGUAGE GeneralizedNewtypeDeriving #-} | 4 | {-# LANGUAGE GeneralizedNewtypeDeriving #-} |
@@ -38,13 +39,20 @@ import Internal.Util(Normed(..),Indexable(..), | |||
38 | gaussElim, gaussElim_1, gaussElim_2, | 39 | gaussElim, gaussElim_1, gaussElim_2, |
39 | luST, luSolve', luPacked', magnit, invershur) | 40 | luST, luSolve', luPacked', magnit, invershur) |
40 | import Internal.ST(mutable) | 41 | import Internal.ST(mutable) |
42 | #if MIN_VERSION_base(4,11,0) | ||
43 | import GHC.TypeLits hiding (Mod) | ||
44 | #else | ||
41 | import GHC.TypeLits | 45 | import GHC.TypeLits |
46 | #endif | ||
42 | import Data.Proxy(Proxy) | 47 | import Data.Proxy(Proxy) |
43 | import Foreign.ForeignPtr(castForeignPtr) | 48 | import Foreign.ForeignPtr(castForeignPtr) |
44 | import Foreign.Storable | 49 | import Foreign.Storable |
45 | import Data.Ratio | 50 | import Data.Ratio |
46 | import Data.Complex | 51 | import Data.Complex |
47 | import Control.DeepSeq ( NFData(..) ) | 52 | import Control.DeepSeq ( NFData(..) ) |
53 | #if MIN_VERSION_base(4,11,0) | ||
54 | import Prelude hiding ((<>)) | ||
55 | #endif | ||
48 | 56 | ||
49 | 57 | ||
50 | 58 | ||
diff --git a/packages/base/src/Internal/Util.hs b/packages/base/src/Internal/Util.hs index ec21fe4..8c8a31e 100644 --- a/packages/base/src/Internal/Util.hs +++ b/packages/base/src/Internal/Util.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
1 | {-# LANGUAGE FlexibleContexts #-} | 2 | {-# LANGUAGE FlexibleContexts #-} |
2 | {-# LANGUAGE FlexibleInstances #-} | 3 | {-# LANGUAGE FlexibleInstances #-} |
3 | {-# LANGUAGE MultiParamTypeClasses #-} | 4 | {-# LANGUAGE MultiParamTypeClasses #-} |
@@ -80,6 +81,9 @@ import Control.Arrow((&&&),(***)) | |||
80 | import Data.Complex | 81 | import Data.Complex |
81 | import Data.Function(on) | 82 | import Data.Function(on) |
82 | import Internal.ST | 83 | import Internal.ST |
84 | #if MIN_VERSION_base(4,11,0) | ||
85 | import Prelude hiding ((<>)) | ||
86 | #endif | ||
83 | 87 | ||
84 | type ℝ = Double | 88 | type ℝ = Double |
85 | type ℕ = Int | 89 | type ℕ = Int |
diff --git a/packages/base/src/Numeric/LinearAlgebra.hs b/packages/base/src/Numeric/LinearAlgebra.hs index fd100e0..73d4a13 100644 --- a/packages/base/src/Numeric/LinearAlgebra.hs +++ b/packages/base/src/Numeric/LinearAlgebra.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
1 | {-# LANGUAGE FlexibleContexts #-} | 2 | {-# LANGUAGE FlexibleContexts #-} |
2 | 3 | ||
3 | ----------------------------------------------------------------------------- | 4 | ----------------------------------------------------------------------------- |
@@ -190,6 +191,9 @@ import Internal.Random | |||
190 | import Internal.Sparse((!#>)) | 191 | import Internal.Sparse((!#>)) |
191 | import Internal.CG | 192 | import Internal.CG |
192 | import Internal.Conversion | 193 | import Internal.Conversion |
194 | #if MIN_VERSION_base(4,11,0) | ||
195 | import Prelude hiding ((<>)) | ||
196 | #endif | ||
193 | 197 | ||
194 | {- | dense matrix product | 198 | {- | dense matrix product |
195 | 199 | ||
diff --git a/packages/base/src/Numeric/LinearAlgebra/HMatrix.hs b/packages/base/src/Numeric/LinearAlgebra/HMatrix.hs index 5ce529c..3a84645 100644 --- a/packages/base/src/Numeric/LinearAlgebra/HMatrix.hs +++ b/packages/base/src/Numeric/LinearAlgebra/HMatrix.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
1 | -------------------------------------------------------------------------------- | 2 | -------------------------------------------------------------------------------- |
2 | {- | | 3 | {- | |
3 | Module : Numeric.LinearAlgebra.HMatrix | 4 | Module : Numeric.LinearAlgebra.HMatrix |
@@ -19,6 +20,9 @@ module Numeric.LinearAlgebra.HMatrix ( | |||
19 | import Numeric.LinearAlgebra | 20 | import Numeric.LinearAlgebra |
20 | import Internal.Util | 21 | import Internal.Util |
21 | import Internal.Algorithms(cholSH, mbCholSH, eigSH', eigenvaluesSH', geigSH') | 22 | import Internal.Algorithms(cholSH, mbCholSH, eigSH', eigenvaluesSH', geigSH') |
23 | #if MIN_VERSION_base(4,11,0) | ||
24 | import Prelude hiding ((<>)) | ||
25 | #endif | ||
22 | 26 | ||
23 | infixr 8 <·> | 27 | infixr 8 <·> |
24 | (<·>) :: Numeric t => Vector t -> Vector t -> t | 28 | (<·>) :: Numeric t => Vector t -> Vector t -> t |
diff --git a/packages/base/src/Numeric/LinearAlgebra/Static.hs b/packages/base/src/Numeric/LinearAlgebra/Static.hs index 3000dcb..e328904 100644 --- a/packages/base/src/Numeric/LinearAlgebra/Static.hs +++ b/packages/base/src/Numeric/LinearAlgebra/Static.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
1 | {-# LANGUAGE DataKinds #-} | 2 | {-# LANGUAGE DataKinds #-} |
2 | {-# LANGUAGE KindSignatures #-} | 3 | {-# LANGUAGE KindSignatures #-} |
3 | {-# LANGUAGE GeneralizedNewtypeDeriving #-} | 4 | {-# LANGUAGE GeneralizedNewtypeDeriving #-} |
@@ -80,6 +81,9 @@ import Control.Arrow((***)) | |||
80 | import Text.Printf | 81 | import Text.Printf |
81 | import Data.Type.Equality ((:~:)(Refl)) | 82 | import Data.Type.Equality ((:~:)(Refl)) |
82 | import qualified Data.Bifunctor as BF (first) | 83 | import qualified Data.Bifunctor as BF (first) |
84 | #if MIN_VERSION_base(4,11,0) | ||
85 | import Prelude hiding ((<>)) | ||
86 | #endif | ||
83 | 87 | ||
84 | ud1 :: R n -> Vector ℝ | 88 | ud1 :: R n -> Vector ℝ |
85 | ud1 (R (Dim v)) = v | 89 | ud1 (R (Dim v)) = v |
diff --git a/packages/base/src/Numeric/Matrix.hs b/packages/base/src/Numeric/Matrix.hs index 5400f26..06da150 100644 --- a/packages/base/src/Numeric/Matrix.hs +++ b/packages/base/src/Numeric/Matrix.hs | |||
@@ -32,8 +32,11 @@ import Internal.Element | |||
32 | import Internal.Numeric | 32 | import Internal.Numeric |
33 | import qualified Data.Monoid as M | 33 | import qualified Data.Monoid as M |
34 | import Data.List(partition) | 34 | import Data.List(partition) |
35 | import qualified Data.Foldable as F | ||
36 | import qualified Data.Semigroup as S | ||
35 | import Internal.Chain | 37 | import Internal.Chain |
36 | 38 | ||
39 | |||
37 | ------------------------------------------------------------------- | 40 | ------------------------------------------------------------------- |
38 | 41 | ||
39 | instance Container Matrix a => Eq (Matrix a) where | 42 | instance Container Matrix a => Eq (Matrix a) where |
@@ -84,6 +87,11 @@ adaptScalarM f1 f2 f3 x y | |||
84 | | isScalar y = f3 x (y @@>(0,0) ) | 87 | | isScalar y = f3 x (y @@>(0,0) ) |
85 | | otherwise = f2 x y | 88 | | otherwise = f2 x y |
86 | 89 | ||
90 | instance (Container Vector t, Eq t, Num (Vector t), Product t) => S.Semigroup (Matrix t) | ||
91 | where | ||
92 | (<>) = mappend | ||
93 | sconcat = mconcat . F.toList | ||
94 | |||
87 | instance (Container Vector t, Eq t, Num (Vector t), Product t) => M.Monoid (Matrix t) | 95 | instance (Container Vector t, Eq t, Num (Vector t), Product t) => M.Monoid (Matrix t) |
88 | where | 96 | where |
89 | mempty = 1 | 97 | mempty = 1 |