diff options
Diffstat (limited to 'lib/Data')
-rw-r--r-- | lib/Data/Packed/Matrix.hs | 16 | ||||
-rw-r--r-- | lib/Data/Packed/Vector.hs | 15 |
2 files changed, 18 insertions, 13 deletions
diff --git a/lib/Data/Packed/Matrix.hs b/lib/Data/Packed/Matrix.hs index de2300a..2922cbe 100644 --- a/lib/Data/Packed/Matrix.hs +++ b/lib/Data/Packed/Matrix.hs | |||
@@ -2,16 +2,16 @@ | |||
2 | {-# LANGUAGE FlexibleContexts #-} | 2 | {-# LANGUAGE FlexibleContexts #-} |
3 | {-# LANGUAGE FlexibleInstances #-} | 3 | {-# LANGUAGE FlexibleInstances #-} |
4 | {-# LANGUAGE MultiParamTypeClasses #-} | 4 | {-# LANGUAGE MultiParamTypeClasses #-} |
5 | {-# LANGUAGE CPP #-} | ||
5 | 6 | ||
6 | ----------------------------------------------------------------------------- | 7 | ----------------------------------------------------------------------------- |
7 | -- | | 8 | -- | |
8 | -- Module : Data.Packed.Matrix | 9 | -- Module : Data.Packed.Matrix |
9 | -- Copyright : (c) Alberto Ruiz 2007-10 | 10 | -- Copyright : (c) Alberto Ruiz 2007-10 |
10 | -- License : GPL-style | 11 | -- License : GPL |
11 | -- | 12 | -- |
12 | -- Maintainer : Alberto Ruiz <aruiz@um.es> | 13 | -- Maintainer : Alberto Ruiz <aruiz@um.es> |
13 | -- Stability : provisional | 14 | -- Stability : provisional |
14 | -- Portability : portable | ||
15 | -- | 15 | -- |
16 | -- A Matrix representation suitable for numerical computations using LAPACK and GSL. | 16 | -- A Matrix representation suitable for numerical computations using LAPACK and GSL. |
17 | -- | 17 | -- |
@@ -43,16 +43,14 @@ import Data.Packed.Internal | |||
43 | import qualified Data.Packed.ST as ST | 43 | import qualified Data.Packed.ST as ST |
44 | import Data.List(transpose,intersperse) | 44 | import Data.List(transpose,intersperse) |
45 | import Data.Array | 45 | import Data.Array |
46 | import Foreign.Storable | ||
47 | |||
48 | ------------------------------------------------------------------- | ||
46 | 49 | ||
50 | #ifdef BINARY | ||
47 | 51 | ||
48 | import Data.Binary | 52 | import Data.Binary |
49 | import Foreign.Storable | ||
50 | import Control.Monad(replicateM) | 53 | import Control.Monad(replicateM) |
51 | --import Control.Arrow((***)) | ||
52 | --import GHC.Float(double2Float,float2Double) | ||
53 | |||
54 | |||
55 | ------------------------------------------------------------------- | ||
56 | 54 | ||
57 | instance (Binary a, Element a, Storable a) => Binary (Matrix a) where | 55 | instance (Binary a, Element a, Storable a) => Binary (Matrix a) where |
58 | put m = do | 56 | put m = do |
@@ -67,6 +65,8 @@ instance (Binary a, Element a, Storable a) => Binary (Matrix a) where | |||
67 | xs <- replicateM r $ replicateM c get | 65 | xs <- replicateM r $ replicateM c get |
68 | return $ fromLists xs | 66 | return $ fromLists xs |
69 | 67 | ||
68 | #endif | ||
69 | |||
70 | ------------------------------------------------------------------- | 70 | ------------------------------------------------------------------- |
71 | 71 | ||
72 | instance (Show a, Element a) => (Show (Matrix a)) where | 72 | instance (Show a, Element a) => (Show (Matrix a)) where |
diff --git a/lib/Data/Packed/Vector.hs b/lib/Data/Packed/Vector.hs index 8b1e813..f90f8e4 100644 --- a/lib/Data/Packed/Vector.hs +++ b/lib/Data/Packed/Vector.hs | |||
@@ -1,13 +1,13 @@ | |||
1 | {-# LANGUAGE FlexibleContexts #-} | 1 | {-# LANGUAGE FlexibleContexts #-} |
2 | {-# LANGUAGE CPP #-} | ||
2 | ----------------------------------------------------------------------------- | 3 | ----------------------------------------------------------------------------- |
3 | -- | | 4 | -- | |
4 | -- Module : Data.Packed.Vector | 5 | -- Module : Data.Packed.Vector |
5 | -- Copyright : (c) Alberto Ruiz 2007 | 6 | -- Copyright : (c) Alberto Ruiz 2007-10 |
6 | -- License : GPL-style | 7 | -- License : GPL |
7 | -- | 8 | -- |
8 | -- Maintainer : Alberto Ruiz <aruiz@um.es> | 9 | -- Maintainer : Alberto Ruiz <aruiz@um.es> |
9 | -- Stability : provisional | 10 | -- Stability : provisional |
10 | -- Portability : portable | ||
11 | -- | 11 | -- |
12 | -- 1D arrays suitable for numeric computations using external libraries. | 12 | -- 1D arrays suitable for numeric computations using external libraries. |
13 | -- | 13 | -- |
@@ -26,12 +26,15 @@ module Data.Packed.Vector ( | |||
26 | ) where | 26 | ) where |
27 | 27 | ||
28 | import Data.Packed.Internal.Vector | 28 | import Data.Packed.Internal.Vector |
29 | import Data.Binary | ||
30 | import Foreign.Storable | 29 | import Foreign.Storable |
31 | import Control.Monad(replicateM) | ||
32 | 30 | ||
33 | ------------------------------------------------------------------- | 31 | ------------------------------------------------------------------- |
34 | 32 | ||
33 | #ifdef BINARY | ||
34 | |||
35 | import Data.Binary | ||
36 | import Control.Monad(replicateM) | ||
37 | |||
35 | -- a 64K cache, with a Double taking 13 bytes in Bytestring, | 38 | -- a 64K cache, with a Double taking 13 bytes in Bytestring, |
36 | -- implies a chunk size of 5041 | 39 | -- implies a chunk size of 5041 |
37 | chunk :: Int | 40 | chunk :: Int |
@@ -60,6 +63,8 @@ instance (Binary a, Storable a) => Binary (Vector a) where | |||
60 | vs <- mapM getVector $ chunks d | 63 | vs <- mapM getVector $ chunks d |
61 | return $! join vs | 64 | return $! join vs |
62 | 65 | ||
66 | #endif | ||
67 | |||
63 | ------------------------------------------------------------------- | 68 | ------------------------------------------------------------------- |
64 | 69 | ||
65 | {- | creates a Vector of the specified length using the supplied function to | 70 | {- | creates a Vector of the specified length using the supplied function to |