summaryrefslogtreecommitdiff
path: root/lib/Data/Packed
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Data/Packed')
-rw-r--r--lib/Data/Packed/Internal/Matrix.hs12
-rw-r--r--lib/Data/Packed/Internal/Vector.hs7
-rw-r--r--lib/Data/Packed/Matrix.hs5
-rw-r--r--lib/Data/Packed/ST.hs12
4 files changed, 27 insertions, 9 deletions
diff --git a/lib/Data/Packed/Internal/Matrix.hs b/lib/Data/Packed/Internal/Matrix.hs
index 57142b7..d5fa5a0 100644
--- a/lib/Data/Packed/Internal/Matrix.hs
+++ b/lib/Data/Packed/Internal/Matrix.hs
@@ -39,10 +39,14 @@ import Data.Packed.Internal.Common
39import Data.Packed.Internal.Signatures 39import Data.Packed.Internal.Signatures
40import Data.Packed.Internal.Vector 40import Data.Packed.Internal.Vector
41 41
42import Foreign hiding (xor) 42import Foreign.Marshal.Alloc(alloca, free)
43import Data.Complex 43import Foreign.Marshal.Array(newArray)
44import Foreign.C.Types 44import Foreign.Ptr(Ptr, castPtr)
45import Foreign.C.String 45import Foreign.Storable(Storable, peekElemOff, pokeElemOff, poke, sizeOf)
46import Data.Complex(Complex)
47import Foreign.C.Types(CInt, CChar)
48import Foreign.C.String(newCString)
49import System.IO.Unsafe(unsafePerformIO)
46 50
47----------------------------------------------------------------- 51-----------------------------------------------------------------
48 52
diff --git a/lib/Data/Packed/Internal/Vector.hs b/lib/Data/Packed/Internal/Vector.hs
index 8f403f4..e5a7782 100644
--- a/lib/Data/Packed/Internal/Vector.hs
+++ b/lib/Data/Packed/Internal/Vector.hs
@@ -32,11 +32,16 @@ module Data.Packed.Internal.Vector (
32 32
33import Data.Packed.Internal.Common 33import Data.Packed.Internal.Common
34import Data.Packed.Internal.Signatures 34import Data.Packed.Internal.Signatures
35import Foreign 35import Foreign.Marshal.Alloc(free)
36import Foreign.Marshal.Array(peekArray, pokeArray, copyArray, advancePtr)
37import Foreign.ForeignPtr(ForeignPtr, castForeignPtr)
38import Foreign.Ptr(Ptr)
39import Foreign.Storable(Storable, peekElemOff, pokeElemOff, sizeOf)
36import Foreign.C.String 40import Foreign.C.String
37import Foreign.C.Types(CInt,CChar) 41import Foreign.C.Types(CInt,CChar)
38import Data.Complex 42import Data.Complex
39import Control.Monad(when) 43import Control.Monad(when)
44import System.IO.Unsafe(unsafePerformIO)
40 45
41#if __GLASGOW_HASKELL__ >= 605 46#if __GLASGOW_HASKELL__ >= 605
42import GHC.ForeignPtr (mallocPlainForeignPtrBytes) 47import GHC.ForeignPtr (mallocPlainForeignPtrBytes)
diff --git a/lib/Data/Packed/Matrix.hs b/lib/Data/Packed/Matrix.hs
index 0b23b2f..27fa36c 100644
--- a/lib/Data/Packed/Matrix.hs
+++ b/lib/Data/Packed/Matrix.hs
@@ -42,9 +42,10 @@ module Data.Packed.Matrix (
42 42
43import Data.Packed.Internal 43import Data.Packed.Internal
44import qualified Data.Packed.ST as ST 44import qualified Data.Packed.ST as ST
45import Data.List(transpose,intersperse)
46import Data.Array 45import Data.Array
47import Foreign.Storable 46
47import Data.List(transpose,intersperse)
48import Foreign.Storable(Storable)
48import Control.Arrow((***)) 49import Control.Arrow((***))
49 50
50------------------------------------------------------------------- 51-------------------------------------------------------------------
diff --git a/lib/Data/Packed/ST.hs b/lib/Data/Packed/ST.hs
index 2fad6ae..22aff07 100644
--- a/lib/Data/Packed/ST.hs
+++ b/lib/Data/Packed/ST.hs
@@ -1,3 +1,4 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE TypeOperators #-} 2{-# LANGUAGE TypeOperators #-}
2{-# LANGUAGE Rank2Types #-} 3{-# LANGUAGE Rank2Types #-}
3{-# LANGUAGE BangPatterns #-} 4{-# LANGUAGE BangPatterns #-}
@@ -33,8 +34,15 @@ module Data.Packed.ST (
33) where 34) where
34 35
35import Data.Packed.Internal 36import Data.Packed.Internal
36import Control.Monad.ST 37
37import Foreign 38import Control.Monad.ST(ST, runST)
39import Foreign.Storable(Storable, peekElemOff, pokeElemOff)
40
41#if MIN_VERSION_base(4,4,0)
42import Control.Monad.ST.Unsafe(unsafeIOToST)
43#else
44import Control.Monad.ST(unsafeIOToST)
45#endif
38 46
39{-# INLINE ioReadV #-} 47{-# INLINE ioReadV #-}
40ioReadV :: Storable t => Vector t -> Int -> IO t 48ioReadV :: Storable t => Vector t -> Int -> IO t