packages feed

repa-algorithms 3.2.3.1 → 3.2.4.1

raw patch · 2 files changed

+33/−2 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.Array.Repa.Algorithms.Matrix: trace2P :: Monad m => Array U DIM2 Double -> m Double
+ Data.Array.Repa.Algorithms.Matrix: trace2S :: Array U DIM2 Double -> Double

Files

Data/Array/Repa/Algorithms/Matrix.hs view
@@ -18,11 +18,16 @@ 	, mmultP,      mmultS            -- * Transposition.-        , transpose2P, transpose2S) +        , transpose2P, transpose2S++          -- * Trace.+        , trace2P, trace2S)+ where 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  @@ -108,3 +113,29 @@         new_extent              = swap (extent arr) {-# NOINLINE transpose2S #-} ++-- Trace ------------------------------------------------------------------------+-- | Get the trace of a (square) 2D matrix, in parallel.+trace2P :: Monad m => Array U DIM2 Double -> m Double+trace2P x + = liftM (safeHead . toList) $ sumP $ slice y (Z :. (0 :: Int) :. All)+ where+    safeHead []     = error "repa-algorithms: trace2P empty list"+    safeHead (x':_) = x'++    y               = unsafeBackpermute (extent x) f x+    f (Z :. i :. j) = Z :. (i - j) `mod` nRows:. j+    Z :. nRows :. _nCols = extent x+++-- | Get the trace of a (square) 2D matrix, sequentially.+trace2S :: Array U DIM2 Double -> Double+trace2S x + = safeHead $ toList $ sumS $ slice y (Z :. (0 :: Int) :. All)+ where+    safeHead []     = error "repa-algorithms: trace2S empty list"+    safeHead (x':_) = x'++    y               =  unsafeBackpermute (extent x) f x+    f (Z :. i :. j) = Z :. (i - j) `mod` nRows:. j+    Z :. nRows :. _nCols = extent x
repa-algorithms.cabal view
@@ -1,5 +1,5 @@ Name:                repa-algorithms-Version:             3.2.3.1+Version:             3.2.4.1 License:             BSD3 License-file:        LICENSE Author:              The DPH Team