summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2010-10-21 07:53:59 +0000
committerAlberto Ruiz <aruiz@um.es>2010-10-21 07:53:59 +0000
commit98b21c5ddcbc9fbfddd5dbec646916f016b43e6d (patch)
treebb7a8d27f833cb5dff93fb1489fc8a73a4b3201e /lib
parentbed52f7c21afe7da9bc0a7fe52b748dbeda74610 (diff)
option -f-binary (for testing ghc7)
Diffstat (limited to 'lib')
-rw-r--r--lib/Data/Packed/Matrix.hs16
-rw-r--r--lib/Data/Packed/Vector.hs15
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
43import qualified Data.Packed.ST as ST 43import qualified Data.Packed.ST as ST
44import Data.List(transpose,intersperse) 44import Data.List(transpose,intersperse)
45import Data.Array 45import Data.Array
46import Foreign.Storable
47
48-------------------------------------------------------------------
46 49
50#ifdef BINARY
47 51
48import Data.Binary 52import Data.Binary
49import Foreign.Storable
50import Control.Monad(replicateM) 53import Control.Monad(replicateM)
51--import Control.Arrow((***))
52--import GHC.Float(double2Float,float2Double)
53
54
55-------------------------------------------------------------------
56 54
57instance (Binary a, Element a, Storable a) => Binary (Matrix a) where 55instance (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
72instance (Show a, Element a) => (Show (Matrix a)) where 72instance (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
28import Data.Packed.Internal.Vector 28import Data.Packed.Internal.Vector
29import Data.Binary
30import Foreign.Storable 29import Foreign.Storable
31import Control.Monad(replicateM)
32 30
33------------------------------------------------------------------- 31-------------------------------------------------------------------
34 32
33#ifdef BINARY
34
35import Data.Binary
36import 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
37chunk :: Int 40chunk :: 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