packages feed

repa-algorithms 3.4.1.4 → 3.4.1.5

raw patch · 2 files changed

+20/−19 lines, 2 filesdep ~base

Dependency ranges changed: base

Files

Data/Array/Repa/Algorithms/Matrix.hs view
@@ -2,10 +2,10 @@ {-# LANGUAGE PackageImports #-}  -- | Algorithms operating on matrices.---+--  --   These functions should give performance comparable with nested loop C---   implementations.---+--   implementations. +--  --   If you care deeply about runtime performance then you --   may be better off using a binding to LAPACK, such as hvector. --@@ -27,6 +27,7 @@ import Data.Array.Repa                  as R import Data.Array.Repa.Eval             as R import Data.Array.Repa.Unsafe           as R+import Control.Monad import Control.Monad.ST.Strict  @@ -46,18 +47,18 @@ -- MMult ---------------------------------------------------------------------- -- | Matrix matrix multiply, in parallel. mmultP  :: Monad m-        => Array U DIM2 Double-        -> Array U DIM2 Double+        => Array U DIM2 Double +        -> Array U DIM2 Double          -> m (Array U DIM2 Double) -mmultP arr brr- = [arr, brr] `deepSeqArrays`+mmultP arr brr + = [arr, brr] `deepSeqArrays`     do   trr      <- transpose2P brr         let (Z :. h1  :. _)  = extent arr         let (Z :. _   :. w2) = extent brr-        trr `deepSeqArray` computeP+        trr `deepSeqArray` computeP           $ fromFunction (Z :. h1 :. w2)-         $ \ix   -> R.sumAllS+         $ \ix   -> R.sumAllS                    $ R.zipWith (*)                         (unsafeSlice arr (Any :. (row ix) :. All))                         (unsafeSlice trr (Any :. (col ix) :. All))@@ -65,8 +66,8 @@   -- | Matrix matrix multiply, sequentially.-mmultS  :: Array U DIM2 Double-        -> Array U DIM2 Double+mmultS  :: Array U DIM2 Double +        -> Array U DIM2 Double          -> Array U DIM2 Double  mmultS arr brr@@ -74,9 +75,9 @@    do   trr     <- R.now $ transpose2S brr         let (Z :. h1  :. _)  = extent arr         let (Z :. _   :. w2) = extent brr-        return $ computeS+        return $ computeS           $ fromFunction (Z :. h1 :. w2)-         $ \ix   -> R.sumAllS+         $ \ix   -> R.sumAllS                    $ R.zipWith (*)                         (unsafeSlice arr (Any :. (row ix) :. All))                         (unsafeSlice trr (Any :. (col ix) :. All)))@@ -86,13 +87,13 @@ -- Transpose ------------------------------------------------------------------ -- | Transpose a 2D matrix, in parallel. transpose2P-        :: Monad m-        => Array U DIM2 Double+        :: Monad m +        => Array U DIM2 Double          -> m (Array U DIM2 Double)  transpose2P arr  = arr `deepSeqArray`-   do   computeUnboxedP+   do   computeUnboxedP           $ unsafeBackpermute new_extent swap arr  where  swap (Z :. i :. j)      = Z :. j :. i         new_extent              = swap (extent arr)@@ -101,7 +102,7 @@  -- | Transpose a 2D matrix, sequentially. transpose2S-        :: Array U DIM2 Double+        :: Array U DIM2 Double          -> Array U DIM2 Double  transpose2S arr
repa-algorithms.cabal view
@@ -1,5 +1,5 @@ Name:                repa-algorithms-Version:             3.4.1.4+Version:             3.4.1.5 License:             BSD3 License-file:        LICENSE Author:              The DPH Team@@ -18,7 +18,7 @@  Library   Build-Depends:-        base                 >= 4.8 && < 4.15+        base                 >= 4.8 && < 5       , vector               >= 0.11 && < 0.13       , repa                 == 3.4.1.*