packages feed

accelerate-io 0.15.0.0 → 0.15.1.0

raw patch · 5 files changed

+68/−77 lines, 5 filesdep ~acceleratedep ~base

Dependency ranges changed: accelerate, base

Files

Data/Array/Accelerate/IO/BMP.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE ViewPatterns        #-} -- | -- Module      : Data.Array.Accelerate.IO.BMP -- Copyright   : [2012..2014] Trevor L. McDonell@@ -67,41 +69,61 @@ -- type RGBA32 = Word32 --- | Unpack a 'RGBA32' value into a tuple of (Red, Green, Blue, Alpha) values.+-- | Unpack a (little-endian) 'RGBA32' value into a tuple of (Red, Green, Blue,+-- Alpha) values. ---unpackRGBA32 :: Exp RGBA32 -> Exp (Word8, Word8, Word8, Word8)-unpackRGBA32 rgba =-  let r = A.fromIntegral $ rgba                   .&. 0xFF-      g = A.fromIntegral $ (rgba `div` 0x100)     .&. 0xFF-      b = A.fromIntegral $ (rgba `div` 0x10000)   .&. 0xFF-      a = A.fromIntegral $ (rgba `div` 0x1000000) .&. 0xFF+unpackRGBA32, unpackRGBA32le, unpackRGBA32be+    :: Exp RGBA32+    -> Exp (Word8, Word8, Word8, Word8)+unpackRGBA32 = unpackRGBA32le++unpackRGBA32le rgba =+  let a = A.fromIntegral (rgba `A.shiftR` 24)+      b = A.fromIntegral (rgba `A.shiftR` 16)+      g = A.fromIntegral (rgba `A.shiftR` 8)+      r = A.fromIntegral rgba   in   lift (r, g, b, a) +unpackRGBA32be rgba =+  let r = A.fromIntegral (rgba `A.shiftR` 24)+      g = A.fromIntegral (rgba `A.shiftR` 16)+      b = A.fromIntegral (rgba `A.shiftR` 8)+      a = A.fromIntegral rgba+  in+  lift (r, g, b, a) --- | Promote a tuple of (Red, Green, Blue, Alpha) values into a packed 'RGBA32'--- value.++-- | Promote a tuple of (Red, Green, Blue, Alpha) values into a packed+-- (little-endian) 'RGBA32' value. ---packRGBA32 :: Exp (Word8, Word8, Word8, Word8) -> Exp RGBA32-packRGBA32 rgba =-  let (r', g', b', a')  = unlift rgba-      r                 = A.fromIntegral r'-      g                 = (A.fromIntegral g') * 0x100-      b                 = (A.fromIntegral b') * 0x10000-      a                 = (A.fromIntegral a') * 0x1000000-  in-  r + g + b + a+packRGBA32, packRGBA32le, packRGBA32be+    :: Exp (Word8, Word8, Word8, Word8)+    -> Exp RGBA32+packRGBA32 = packRGBA32le +packRGBA32le (unlift -> (r, g, b, a))+   =  A.fromIntegral a `A.shiftL` 24+  .|. A.fromIntegral b `A.shiftL` 16+  .|. A.fromIntegral g `A.shiftL` 8+  .|. A.fromIntegral r +packRGBA32be (unlift -> (r, g, b, a))+   =  A.fromIntegral r `A.shiftL` 24+  .|. A.fromIntegral g `A.shiftL` 16+  .|. A.fromIntegral b `A.shiftL` 8+  .|. A.fromIntegral a++ -- | Convert an RGBA colour to its luminance value in the range [0..1]. -- luminanceOfRGBA32 :: (Elt a, IsFloating a) => Exp RGBA32 -> Exp a-luminanceOfRGBA32 rgba =-  let r = 0.3  * A.fromIntegral (rgba                 .&. 0xFF)-      g = 0.59 * A.fromIntegral ((rgba `div` 0x100)   .&. 0xFF)-      b = 0.11 * A.fromIntegral ((rgba `div` 0x10000) .&. 0xFF)+luminanceOfRGBA32 (unlift . unpackRGBA32 -> (r, g, b, _a :: Exp Word8)) =+  let r' = 0.3  * A.fromIntegral r+      g' = 0.59 * A.fromIntegral g+      b' = 0.11 * A.fromIntegral b   in-  (r + g + b) / 255+  (r' + g' + b') / 255   -- | Convert a value in the range [0..1] to a grey RGB colour.@@ -109,24 +131,19 @@ rgba32OfLuminance :: (Elt a, IsFloating a) => Exp a -> Exp RGBA32 rgba32OfLuminance val =   let v = A.truncate (255 * val) -- (0 `A.max` val `A.min` 1)-      r = v-      g = v * 0x100-      b = v * 0x10000-      a =     0xFF000000   in-  r + g + b + a+  packRGBA32 (lift (v, v, v, constant 0xFF))   -- | Promote a tuple of (Red, Green, Blue, Alpha) values in the range [0..1] -- into a packed 'RGBA32'. -- rgba32OfFloat :: (Elt a, IsFloating a) => Exp (a, a, a, a) -> Exp RGBA32-rgba32OfFloat rgba =-  let (r, g, b, a)      = unlift rgba-      r'                = A.truncate (255 * r) * 0x1000000-      g'                = A.truncate (255 * g) * 0x10000-      b'                = A.truncate (255 * b) * 0x100-      a'                = A.truncate (255 * a)+rgba32OfFloat (unlift -> (r,g,b,a)) =+  let r' = A.truncate (255 * r)+      g' = A.truncate (255 * g)+      b' = A.truncate (255 * b)+      a' = A.truncate (255 * a)   in-  r' + g' + b' + a'+  packRGBA32 (lift (r', g', b', a')) 
Data/Array/Accelerate/IO/ByteString.hs view
@@ -29,8 +29,8 @@ -- fromByteString :: (Shape sh, Elt e) => sh -> ByteStrings (EltRepr e) -> IO (Array sh e) fromByteString sh byteStrings = do-  let arr    = allocateArray sh-      copier = let ((_,f),_,_) = blockCopyFunGenerator arr in f+  arr <- allocateArray sh+  let copier = let ((_,f),_,_) = blockCopyFunGenerator arr in f   copier byteStrings   return arr 
Data/Array/Accelerate/IO/Ptr.hs view
@@ -35,8 +35,8 @@ -- fromPtr :: (Shape sh, Elt e) => sh -> BlockPtrs (EltRepr e) -> IO (Array sh e) fromPtr sh blkPtrs = do-  let arr    = allocateArray sh-      copier = let ((f,_),_,_) = blockCopyFunGenerator arr in f+  arr   <- allocateArray sh+  let copier = let ((f,_),_,_) = blockCopyFunGenerator arr in f   copier blkPtrs   return arr @@ -94,8 +94,8 @@ -- toArray :: (Shape sh, Elt e) => sh -> BlockCopyFuns (EltRepr e) -> IO (Array sh e) toArray sh blockCopyFuns = do-  let arr    = allocateArray sh-      copier = let (_,_,f) = blockCopyFunGenerator arr in f+  arr <- allocateArray sh+  let copier = let (_,_,f) = blockCopyFunGenerator arr in f   copier blockCopyFuns   return arr 
accelerate-io.cabal view
@@ -1,7 +1,7 @@ Name:                   accelerate-io-Version:                0.15.0.0+Version:                0.15.1.0 Cabal-version:          >= 1.6-Tested-with:            GHC == 7.6.*+Tested-with:            GHC >= 7.8 Build-type:             Simple  Synopsis:               Read and write Accelerate arrays in various formats@@ -16,7 +16,7 @@ License-file:           LICENSE Author:                 Manuel M T Chakravarty,                         Gabriele Keller,-                        Sean Lee,+                        Sean Seefried,                         Trevor L. McDonell Maintainer:             Manuel M T Chakravarty <chak@cse.unsw.edu.au> Homepage:               https://github.com/AccelerateHS/accelerate-io@@ -25,9 +25,7 @@ Category:               Compilers/Interpreters, Concurrency, Data, Parallelism Stability:              Experimental -Extra-source-files:     include/accelerate.h - Flag bounds-checks   Description:          Enable bounds checking   Default:              True@@ -41,10 +39,9 @@   Default:              False  Library-  Include-Dirs:         include-  Build-depends:        accelerate      == 0.15.*,+  Build-depends:        accelerate      == 0.15.1.*,                         array           >= 0.3,-                        base            >= 4.6 && < 4.8,+                        base            >= 4.7 && < 4.9,                         bmp             >= 1.2,                         bytestring      >= 0.9,                         repa            >= 3.2,@@ -76,7 +73,9 @@   --   -- Extensions: -Source-repository head-  Type:                 git-  Location:             git://github.com/AccelerateHS/accelerate-io.git+Source-repository this+  type:                 git+  location:             git://github.com/AccelerateHS/accelerate-io.git+  branch:               release/0.15+  tag:                  0.15.1.0 
− include/accelerate.h
@@ -1,25 +0,0 @@--#ifndef NOT_ACCELERATE_MODULE-import qualified Data.Array.Accelerate.Internal.Check as Ck-#endif--#define ERROR(f)  (Ck.f __FILE__ __LINE__)-#define ASSERT (Ck.assert __FILE__ __LINE__)-#define ENSURE (Ck.f __FILE__ __LINE__)-#define CHECK(f) (Ck.f __FILE__ __LINE__)--#define BOUNDS_ERROR(f) (ERROR(f) Ck.Bounds)-#define BOUNDS_ASSERT (ASSERT Ck.Bounds)-#define BOUNDS_ENSURE (ENSURE Ck.Bounds)-#define BOUNDS_CHECK(f) (CHECK(f) Ck.Bounds)--#define UNSAFE_ERROR(f) (ERROR(f) Ck.Unsafe)-#define UNSAFE_ASSERT (ASSERT Ck.Unsafe)-#define UNSAFE_ENSURE (ENSURE Ck.Unsafe)-#define UNSAFE_CHECK(f) (CHECK(f) Ck.Unsafe)--#define INTERNAL_ERROR(f) (ERROR(f) Ck.Internal)-#define INTERNAL_ASSERT (ASSERT Ck.Internal)-#define INTERNAL_ENSURE (ENSURE Ck.Internal)-#define INTERNAL_CHECK(f) (CHECK(f) Ck.Internal)-