packages feed

accelerate-arithmetic 0.1 → 1.0.0.1

raw patch · 5 files changed

Files

accelerate-arithmetic.cabal view
@@ -1,5 +1,5 @@ Name:             accelerate-arithmetic-Version:          0.1+Version:          1.0.0.1 License:          BSD3 License-File:     LICENSE Author:           Henning Thielemann <haskell@henning-thielemann.de>@@ -13,11 +13,11 @@   but it does not contain processor optimizations   or optimizations for CUDA. Tested-With:      GHC==7.8.2-Cabal-Version:    >=1.14+Cabal-Version:    1.14 Build-Type:       Simple  Source-Repository this-  Tag:         0.1+  Tag:         1.0.0.1   Type:        darcs   Location:    http://hub.darcs.net/thielema/accelerate-arithmetic/ @@ -27,11 +27,11 @@  Library   Build-Depends:-    accelerate-utility >=0.1 && <0.2,-    accelerate >=0.15 && <0.16,+    accelerate-utility >=1.0 && <1.1,+    accelerate >=1.0 && <1.2,     utility-ht >=0.0.8 && <0.1,     QuickCheck >=2.4 && <3,-    base >=4.5 && <4.10+    base >=4.5 && <5    GHC-Options:      -Wall -fwarn-missing-import-lists   Hs-Source-Dirs:   src, private
private/Data/Array/Accelerate/LinearAlgebra/Private.hs view
@@ -63,7 +63,7 @@   outer ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Vector ix a -> Vector ix a -> Matrix ix a outer x y =    A.zipWith (*)@@ -71,7 +71,7 @@       (A.replicate (A.lift $ Any :. numElems x :. All) y)  multiplyMatrixVector ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Matrix ix a ->    Vector ix a ->    Vector ix a@@ -83,7 +83,7 @@             (A.replicate (A.lift $ Any :. rows :. All) v)  multiplyMatrixMatrix ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Matrix ix a ->    Matrix ix a ->    Matrix ix a@@ -96,7 +96,7 @@             (A.replicate (A.lift $ Any :. rows :. All :. All) y)  newtonInverseStep ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Matrix ix a ->    Matrix ix a ->    Matrix ix a@@ -105,15 +105,15 @@    multiplyMatrixMatrix x $ multiplyMatrixMatrix a x  identity ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Elt a, A.FromIntegral Int a) =>    Exp (ix :. Int :. Int) -> Matrix ix a identity sh =    A.generate sh       (withMatrixIndex $-       \(_ :. r :. c) -> A.fromIntegral $ A.boolToInt (r A.==* c))+       \(_ :. r :. c) -> A.fromIntegral $ A.boolToInt (r A.== c))  newtonInverse ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Exp Int ->    Matrix ix a ->    Matrix ix a ->@@ -124,7 +124,7 @@   scaleRows ::-   (A.Slice ix, A.Shape ix, A.Elt a, A.IsNum a) =>+   (A.Slice ix, A.Shape ix, A.Num a) =>    Vector ix a -> Matrix ix a -> Matrix ix a scaleRows s x =    zipScalarVectorWith (*) s x
src/Data/Array/Accelerate/Arithmetic/Interpolation.hs view
@@ -19,7 +19,7 @@   bisect ::-   (A.Slice ix, A.Shape ix, A.IsScalar a, A.Elt a) =>+   (A.Slice ix, A.Shape ix, A.Ord a, A.Elt a) =>    Vector ix a ->    Scalar ix a ->    Scalar ix (Int, Int) ->@@ -35,11 +35,11 @@                  (Exp.mapSnd (const center) interval)                  (Exp.mapFst (const center) interval))           centers bounds $-       A.zipWith (A.<*) xs $+       A.zipWith (A.<) xs $        Arrange.gather (Arrange.mapWithIndex Exp.indexCons centers) nodes  lookupInterval ::-   (A.Slice ix, A.Shape ix, A.IsScalar a, A.Elt a) =>+   (A.Slice ix, A.Shape ix, A.Ord a, A.Elt a) =>    Vector ix a ->    Scalar ix a ->    Scalar ix Int@@ -66,7 +66,7 @@ type Interpolator13 a = (a,a) -> (a,a) -> (a,a) -> (a,a) -> a -> a  sampleBasisFunctions13 ::-   (A.Slice ix, A.Shape ix, A.Elt a, A.IsFloating a, Num a) =>+   (A.Slice ix, A.Shape ix, A.Ord a, Num a) =>    Interpolator13 (Exp a) ->    Vector Z a -> Vector ix a -> Sparse.Rows ix a sampleBasisFunctions13 interpolate nodes zs =@@ -83,8 +83,8 @@               case (Exp.unliftQuadruple x, Exp.unliftQuadruple y) of                  ((xm1,x0,x1,x2), (ym1,y0,y1,y2)) ->                     (ln+k :: Exp Int,-                     A.cond (n A.<* minIx) y0 $-                     A.cond (n A.>* maxIx) y1 $+                     A.cond (n A.< minIx) y0 $+                     A.cond (n A.> maxIx) y1 $                      interpolate (xm1,ym1) (x0,y0) (x1,y1) (x2,y2) z))           (A.zip4 indices limitIndices zs              (A.zip4
src/Data/Array/Accelerate/LinearAlgebra/Matrix/Banded.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE FlexibleContexts #-} module Data.Array.Accelerate.LinearAlgebra.Matrix.Banded (    Symmetric(..),    flattenSymmetric,@@ -8,13 +9,13 @@ import qualified Data.Array.Accelerate.Utility.Lift.Exp as Exp import qualified Data.Array.Accelerate as A import Data.Array.Accelerate.Utility.Lift.Exp (expr)-import Data.Array.Accelerate ((:.)((:.)), (>*), (!), (?))+import Data.Array.Accelerate ((:.)((:.)), (!), (?))   newtype Symmetric ix a = Symmetric (Matrix ix a)  flattenSymmetric ::-   (A.Slice ix, A.Shape ix, A.Elt a, A.IsNum a) =>+   (A.Slice ix, A.Shape ix, A.Num a) =>    Symmetric ix a -> Matrix ix a flattenSymmetric (Symmetric m) =    case matrixShape m of@@ -23,4 +24,4 @@          Exp.modify (expr:.expr:.expr) $ \(ix:.k0:.j0) ->             let k = min k0 j0                 j = max k0 j0 - k-            in  width >* j ? (m ! A.lift(ix:.k:.j), 0)+            in  width A.> j ? (m ! A.lift(ix:.k:.j), 0)
src/Data/Array/Accelerate/LinearAlgebra/Matrix/Sparse.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TypeOperators #-}+{-# LANGUAGE FlexibleContexts #-} module Data.Array.Accelerate.LinearAlgebra.Matrix.Sparse (    Columns(..),    multiplyColumnsVector,@@ -18,10 +19,8 @@ import qualified Data.Array.Accelerate as A import Data.Array.Accelerate.Utility.Lift.Exp (expr, ) -import Data.Array.Accelerate.LinearAlgebra-          (Matrix, Vector, matrixShape, )-import Data.Array.Accelerate-          (Exp, Any(Any), All(All), (:.)((:.)), (>*), (?), )+import Data.Array.Accelerate.LinearAlgebra (Matrix, Vector, matrixShape, )+import Data.Array.Accelerate (Exp, Any(Any), All(All), (:.)((:.)), (?), )   {- |@@ -40,7 +39,7 @@       (A.map A.fst m)  multiplyColumnsVector ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Columns ix a ->    Vector ix a ->    Vector ix a@@ -54,7 +53,7 @@       (A.replicate (A.lift $ Any :. LinAlg.numRows m :. All) v)  transposeColumns ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Columns ix a ->    Rows ix a transposeColumns (Columns n x) =@@ -68,7 +67,7 @@         Rows {numCols :: Exp Int, rowMatrix :: Matrix ix (Int, a)}  multiplyRowsVector ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Rows ix a ->    Vector ix a ->    Vector ix a@@ -78,14 +77,14 @@    Arrange.gather (realIndex m) v  transposeRows ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Rows ix a ->    Columns ix a transposeRows (Rows n x) =    (Columns n $ LinAlg.transpose x)  multiplyColumnsRows ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Columns ix a ->    Rows ix a ->    Matrix ix a@@ -108,7 +107,7 @@ So far, only correct for real matrices. -} realBandedGramian ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Exp Int ->    Rows ix a ->    BandMatrix.Symmetric ix a@@ -119,13 +118,13 @@        Arrange.scatter (+)           (Arrange.mapWithIndex              (Exp.modify2 expr (expr,expr) $ \mix (k,j) ->-                k>*j ? (A.ignore, A.lift $ global mix :. k :. j-k)) $+                k A.> j ? (A.ignore, A.lift $ global mix :. k :. j-k)) $            ixs)           (A.fill (A.lift $ global (A.shape prods) :. cols :. width) 0)           prods  matchMatrices ::-   (A.Shape ix, A.Slice ix, A.IsNum a, A.Elt a) =>+   (A.Shape ix, A.Slice ix, A.Num a) =>    Matrix ix (Int, a) ->    Matrix ix (Int, a) ->    Matrix (ix :. Int) ((Int, Int), a)@@ -141,7 +140,7 @@   scaleRowRows ::-   (A.Slice ix, A.Shape ix, A.Elt a, A.IsNum a) =>+   (A.Slice ix, A.Shape ix, A.Num a) =>    Vector ix a -> Rows ix a -> Rows ix a scaleRowRows s (Rows n x) =    Rows n $