accelerate-fftw 1.0.1 → 1.0.2
raw patch · 3 files changed
+21/−20 lines, 3 filesdep ~acceleratedep ~accelerate-io
Dependency ranges changed: accelerate, accelerate-io
Files
- accelerate-fftw.cabal +4/−4
- src/Data/Array/Accelerate/CArray/Conversion.hs +12/−12
- src/Data/Array/Accelerate/FFTW/Manifest.hs +5/−4
accelerate-fftw.cabal view
@@ -1,5 +1,5 @@ Name: accelerate-fftw-Version: 1.0.1+Version: 1.0.2 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -15,7 +15,7 @@ Build-Type: Simple Source-Repository this- Tag: 1.0.1+ Tag: 1.0.2 Type: darcs Location: https://hub.darcs.net/thielema/accelerate-fftw/ @@ -28,8 +28,8 @@ fft >=0.1.7 && <0.2, carray >=0.1.5 && <0.2, storable-complex >=0.2.1 && <0.3,- accelerate-io >=1.2 && <1.3,- accelerate >=1.2 && <1.3,+ accelerate-io >=1.3 && <1.5,+ accelerate >=1.3 && <1.5, base >=4.5 && <5 GHC-Options: -Wall -fwarn-missing-import-lists
src/Data/Array/Accelerate/CArray/Conversion.hs view
@@ -4,7 +4,7 @@ import qualified Data.Array.Accelerate.IO.Foreign.ForeignPtr as AIO import qualified Data.Array.Accelerate as A-import Data.Array.Accelerate.Array.Sugar (EltRepr)+import Data.Array.Accelerate.Sugar.Elt (EltR) import Data.Array.Accelerate (Array, DIM1, DIM2, Z(Z), (:.)((:.))) import qualified Data.Array.CArray as CArray@@ -20,14 +20,14 @@ accFromCArrayReal1D ::- (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>+ (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) => CArray Int a -> Array DIM1 a accFromCArrayReal1D arr = let (len, fptr) = CArray.toForeignPtr arr in AIO.fromForeignPtrs (Z :. len) fptr accFromCArrayReal2D ::- (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>+ (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) => CArray (Int, Int) a -> Array DIM2 a accFromCArrayReal2D arr = AIO.fromForeignPtrs@@ -37,21 +37,21 @@ accFromCArrayComplex1D :: (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,- AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>+ AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) => CArray Int (Complex a) -> Array DIM1 (Complex a) accFromCArrayComplex1D arr = accFromCArrayComplex (accDimsFromArrayBounds1D $ CArray.bounds arr) arr accFromCArrayComplex2D :: (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,- AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>+ AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) => CArray (Int, Int) (Complex a) -> Array DIM2 (Complex a) accFromCArrayComplex2D arr = accFromCArrayComplex (accDimsFromArrayBounds2D $ CArray.bounds arr) arr accFromCArrayComplex :: (Ix i, A.Shape sh, Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,- AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>+ AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) => sh -> CArray i ac -> Array sh ac accFromCArrayComplex sh arr = AIO.fromForeignPtrs sh (snd $ CArray.toForeignPtr arr)@@ -68,7 +68,7 @@ cArrayFromAccReal1D ::- (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>+ (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) => Array DIM1 a -> CArray Int a cArrayFromAccReal1D arr = let (Z:.len) = A.arrayShape arr@@ -76,7 +76,7 @@ unsafeForeignPtrToCArray (AIO.toForeignPtrs arr) (0,len-1) cArrayFromAccReal2D ::- (A.Elt a, Storable a, AIO.ForeignPtrs (EltRepr a) ~ ForeignPtr a) =>+ (A.Elt a, Storable a, AIO.ForeignPtrs (EltR a) ~ ForeignPtr a) => Array DIM2 a -> CArray (Int, Int) a cArrayFromAccReal2D arr = unsafePerformIO $@@ -85,7 +85,7 @@ cArrayFromAccComplex1D :: (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,- AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>+ AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) => Array DIM1 ac -> CArray Int ac cArrayFromAccComplex1D arr = cArrayFromAccComplex@@ -93,7 +93,7 @@ cArrayFromAccComplex2D :: (Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,- AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>+ AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) => Array DIM2 ac -> CArray (Int,Int) ac cArrayFromAccComplex2D arr = cArrayFromAccComplex@@ -102,7 +102,7 @@ cArrayFromAccComplex :: (Ix i, A.Shape sh, Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,- AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>+ AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) => (i,i) -> Array sh ac -> CArray i ac cArrayFromAccComplex bnds arr = unsafePerformIO $@@ -112,7 +112,7 @@ withCArrayComplex :: (Ix i, A.Shape sh, Storable a, RealFloat a, Complex a ~ ac, A.Elt ac,- AIO.ForeignPtrs (EltRepr ac) ~ ForeignPtr ac) =>+ AIO.ForeignPtrs (EltR ac) ~ ForeignPtr ac) => (sh -> (i,i)) -> (CArray i (Complex a) -> CArray i (Complex a)) -> Array sh (Complex a) -> Array sh (Complex a)
src/Data/Array/Accelerate/FFTW/Manifest.hs view
@@ -18,7 +18,8 @@ import qualified Data.Array.Accelerate.IO.Foreign.ForeignPtr as AIO import qualified Data.Array.Accelerate as A-import Data.Array.Accelerate.Array.Sugar (EltRepr)+import qualified Data.Array.Accelerate.Sugar.Shape as Shape+import Data.Array.Accelerate.Sugar.Elt (EltR) import Data.Array.Accelerate (Array, (:.)((:.))) import Foreign.Storable.Complex ()@@ -34,7 +35,7 @@ type Element a = (FFTWReal a, A.Elt (Complex a),- AIO.ForeignPtrs (EltRepr (Complex a)) ~ ForeignPtr (Complex a))+ AIO.ForeignPtrs (EltR (Complex a)) ~ ForeignPtr (Complex a)) dft :: (A.Shape sh, Element a) =>@@ -47,7 +48,7 @@ idft = Conv.withCArrayComplex bnds1 $ FFT.dftN [1] bnds1 :: (A.Shape sh) => sh:.Int -> Bounds (Int,Int)-bnds1 (sh:.n) = ((0,0), (A.arraySize sh-1, n-1))+bnds1 (sh:.n) = ((0,0), (Shape.size sh-1, n-1)) dft2d ::@@ -63,4 +64,4 @@ Conv.withCArrayComplex bnds2 $ FFT.idftN [1,2] bnds2 :: (A.Shape sh) => sh:.Int:.Int -> Bounds (Int,Int,Int)-bnds2 (sh:.n:.m) = ((0,0,0), (A.arraySize sh-1, n-1, m-1))+bnds2 (sh:.n:.m) = ((0,0,0), (Shape.size sh-1, n-1, m-1))