accelerate-fourier 1.0 → 1.0.0.2
raw patch · 5 files changed
+24/−24 lines, 5 filesdep +accelerate-llvm-nativedep −accelerate-cudadep ~criterionPVP ok
version bump matches the API change (PVP)
Dependencies added: accelerate-llvm-native
Dependencies removed: accelerate-cuda
Dependency ranges changed: criterion
API changes (from Hackage documentation)
Files
- accelerate-fourier.cabal +4/−4
- benchmark/Main.hs +3/−3
- src/Data/Array/Accelerate/Fourier/Planned.hs +4/−4
- src/Data/Array/Accelerate/Fourier/Private.hs +1/−1
- test/Test/Data/Array/Accelerate/Fourier.hs +12/−12
accelerate-fourier.cabal view
@@ -1,5 +1,5 @@ Name: accelerate-fourier-Version: 1.0+Version: 1.0.0.2 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -22,7 +22,7 @@ Build-Type: Simple Source-Repository this- Tag: 1.0+ Tag: 1.0.0.2 Type: darcs Location: http://hub.darcs.net/thielema/accelerate-fourier/ @@ -86,11 +86,11 @@ Hs-Source-Dirs: benchmark Default-Language: Haskell98 Build-Depends:- criterion >=1.0 && <1.1,+ criterion >=1.0 && <1.3, accelerate-fourier, accelerate-arithmetic, accelerate-utility,- accelerate-cuda >=0.15 && <0.16,+ accelerate-llvm-native >=1.1 && <1.2, accelerate, utility-ht, base
benchmark/Main.hs view
@@ -6,7 +6,7 @@ import qualified Data.Array.Accelerate.Fourier.Preprocessed as Prep import qualified Data.Array.Accelerate.Fourier.Adhoc as Adhoc -import qualified Data.Array.Accelerate.CUDA as CUDA+import qualified Data.Array.Accelerate.LLVM.Native as LLVM import qualified Data.Array.Accelerate as A import Data.Array.Accelerate (Array, DIM2, Z(Z), (:.)((:.)), ) import Data.Complex (Complex, )@@ -19,7 +19,7 @@ [Benchmark] powersOfTwo f = take 6 $ flip map (iterate (2*) 1024) $ \len ->- bench (show len) $ whnf (CUDA.run1 (f len)) $+ bench (show len) $ whnf (LLVM.run1 (f len)) $ A.fromList (Z:.16:.len) $ repeat 0 powersOfTwos :: [Benchmark]@@ -46,7 +46,7 @@ [Benchmark] arbitrary f = take 128 $ flip map (iterate (1+) 1) $ \len ->- bench (show len) $ whnf (CUDA.run1 (f len)) $+ bench (show len) $ whnf (LLVM.run1 (f len)) $ A.fromList (Z:.4096:.len) $ repeat 0 arbitraryLengths :: [Benchmark]
src/Data/Array/Accelerate/Fourier/Planned.hs view
@@ -255,10 +255,10 @@ fmap (Plan n) $ case divMod n 2 of (n2,0) ->- case (0::Int) of- 0 -> PlanSplitRadix <$> planDecomposeWithMapUpdate n2- 1 -> PlanComposite <$> planDecomposeWithMapUpdate2 (2,n2)- _ -> PlanRadix2 <$> planDecomposeWithMapUpdate n2+ let psr = PlanSplitRadix <$> planDecomposeWithMapUpdate n2+ _pc = PlanComposite <$> planDecomposeWithMapUpdate2 (2,n2)+ _pr2 = PlanRadix2 <$> planDecomposeWithMapUpdate n2+ in psr _ -> let facs = NumberTheory.fermatFactors n in -- find unitary divisors
src/Data/Array/Accelerate/Fourier/Private.hs view
@@ -6,7 +6,7 @@ import qualified Data.Array.Accelerate.Fourier.Sign as Sign import qualified Data.Array.Accelerate.Convolution.Small as Cyclic-import Data.Array.Accelerate.Fourier.Sign (Sign(Sign), )+import Data.Array.Accelerate.Fourier.Sign (Sign, ) import qualified Data.Array.Accelerate.Utility.Sliced as Sliced import qualified Data.Array.Accelerate.Utility.Sliced1 as Sliced1
test/Test/Data/Array/Accelerate/Fourier.hs view
@@ -248,13 +248,13 @@ -infixl 6 <+>+infixl 6 .+. -(<+>) ::+(.+.) :: Acc (Array DIM1 (Complex Double)) -> Acc (Array DIM1 (Complex Double)) -> Acc (Array DIM1 (Complex Double))-(<+>) = A.zipWith (+)+(.+.) = A.zipWith (+) quickCheckWithSign ::@@ -417,22 +417,22 @@ scalarProduct x y)) : ("convolution commutativity", quickCheck $ \(Normed1Pair len x y) -> run $- let (<*>) = Planned.convolveCyclic len- in x <*> y+ let (.*.) = Planned.convolveCyclic len+ in x .*. y =~=- y <*> x) :+ y .*. x) : ("convolution associativity", quickCheck $ \(Normed1Triple len x y z) -> run $- let (<*>) = Planned.convolveCyclic len- in (x <*> y) <*> z+ let (.*.) = Planned.convolveCyclic len+ in (x .*. y) .*. z =~=- x <*> (y <*> z)) :+ x .*. (y .*. z)) : ("convolution distributivity", quickCheck $ \(Normed1Triple len x y z) -> run $- let (<*>) = Planned.convolveCyclic len- in x <*> (y <+> z)+ let (.*.) = Planned.convolveCyclic len+ in x .*. (y .+. z) =~=- (x <*> y) <+> (x <*> z)) :+ (x .*. y) .+. (x .*. z)) : ("convolution karatsuba rec vs. loop", quickCheck $ \(Normed1 len xy) -> run $ let x = A.map Complex.real xy