summaryrefslogtreecommitdiff
path: root/packages/base/src/Internal/Vector.hs
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2015-06-06 13:10:09 +0200
committerAlberto Ruiz <aruiz@um.es>2015-06-06 13:10:09 +0200
commitde69c1cd115cf2702f4ef6c6932d25ae52375e83 (patch)
tree03b0b87816a380bf5628ad791b2f034529eaf4e4 /packages/base/src/Internal/Vector.hs
parent3e4cdbadb0277010b0e089615e3053f6705332cb (diff)
remove Tools
Diffstat (limited to 'packages/base/src/Internal/Vector.hs')
-rw-r--r--packages/base/src/Internal/Vector.hs58
1 files changed, 38 insertions, 20 deletions
diff --git a/packages/base/src/Internal/Vector.hs b/packages/base/src/Internal/Vector.hs
index 27ee13c..0e9161d 100644
--- a/packages/base/src/Internal/Vector.hs
+++ b/packages/base/src/Internal/Vector.hs
@@ -10,38 +10,56 @@
10-- Stability : provisional 10-- Stability : provisional
11-- 11--
12 12
13module Internal.Vector where 13module Internal.Vector(
14 14 I,Z,R,C,
15import Internal.Tools 15 fi,ti,
16import Foreign.Marshal.Array ( peekArray, copyArray, advancePtr ) 16 Vector, fromList, unsafeToForeignPtr, unsafeFromForeignPtr, unsafeWith,
17import Foreign.ForeignPtr ( ForeignPtr, castForeignPtr ) 17 createVector, vec,
18import Foreign.Ptr ( Ptr ) 18 toList, dim, (@>), at', (|>),
19 vjoin, subVector, takesV, idxs,
20 buildVector,
21 asReal, asComplex,
22 toByteString,fromByteString,
23 zipVector, unzipVector, zipVectorWith, unzipVectorWith,
24 foldVector, foldVectorG, foldVectorWithIndex, foldLoop,
25 mapVector, mapVectorM, mapVectorM_,
26 mapVectorWithIndex, mapVectorWithIndexM, mapVectorWithIndexM_
27) where
28
29import Foreign.Marshal.Array
30import Foreign.ForeignPtr
31import Foreign.Ptr
19import Foreign.Storable 32import Foreign.Storable
20 ( Storable, peekElemOff, pokeElemOff, sizeOf ) 33import Foreign.C.Types(CInt)
21import Foreign.C.Types ( CInt ) 34import Data.Int(Int64)
22import Data.Complex ( Complex ) 35import Data.Complex
23import System.IO.Unsafe ( unsafePerformIO ) 36import System.IO.Unsafe(unsafePerformIO)
24import GHC.ForeignPtr ( mallocPlainForeignPtrBytes ) 37import GHC.ForeignPtr(mallocPlainForeignPtrBytes)
25import GHC.Base ( realWorld#, IO(IO), when ) 38import GHC.Base(realWorld#, IO(IO), when)
26import qualified Data.Vector.Storable as Vector 39import qualified Data.Vector.Storable as Vector
27 ( Vector, slice, length ) 40import Data.Vector.Storable(Vector, fromList, unsafeToForeignPtr, unsafeFromForeignPtr, unsafeWith)
28import Data.Vector.Storable
29 ( fromList, unsafeToForeignPtr, unsafeFromForeignPtr, unsafeWith )
30
31 41
32#ifdef BINARY 42#ifdef BINARY
33
34import Data.Binary 43import Data.Binary
35import Control.Monad(replicateM) 44import Control.Monad(replicateM)
36import qualified Data.ByteString.Internal as BS 45import qualified Data.ByteString.Internal as BS
37import Data.Vector.Storable.Internal(updPtr) 46import Data.Vector.Storable.Internal(updPtr)
38import Foreign.Ptr(plusPtr)
39
40#endif 47#endif
41 48
49type I = CInt
50type Z = Int64
51type R = Double
52type C = Complex Double
53
54
55-- | specialized fromIntegral
56fi :: Int -> CInt
57fi = fromIntegral
42 58
59-- | specialized fromIntegral
60ti :: CInt -> Int
61ti = fromIntegral
43 62
44type Vector = Vector.Vector
45 63
46-- | Number of elements 64-- | Number of elements
47dim :: (Storable t) => Vector t -> Int 65dim :: (Storable t) => Vector t -> Int