carray 0.1.6.5 → 0.1.6.6
raw patch · 5 files changed
+16/−11 lines, 5 filesdep ~sybPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: syb
API changes (from Hackage documentation)
- Data.Array.CArray.Base: instance (Data.Data.Data i, Data.Data.Data e) => Data.Data.Data (Data.Array.CArray.Base.CArray i e)
- Data.Array.CArray.Base: instance (Data.Data.Data i, Data.Data.Data e) => Data.Data.Data (Data.Array.CArray.Base.IOCArray i e)
+ Data.Array.CArray.Base: instance (Data.Data.Data e, Data.Data.Data i) => Data.Data.Data (Data.Array.CArray.Base.CArray i e)
+ Data.Array.CArray.Base: instance (Data.Data.Data e, Data.Data.Data i) => Data.Data.Data (Data.Array.CArray.Base.IOCArray i e)
Files
- carray.cabal +3/−3
- src/Data/Array/CArray/Base.hs +3/−1
- tests/meteor-contest-c.hs +1/−1
- tests/meteor-contest-u.hs +1/−1
- tests/tests.hs +8/−5
carray.cabal view
@@ -1,5 +1,5 @@ name: carray-version: 0.1.6.5+version: 0.1.6.6 synopsis: A C-compatible array library. description: A C-compatible array library.@@ -21,7 +21,7 @@ Makefile source-repository this- tag: 0.1.6.5+ tag: 0.1.6.6 type: darcs location: http://hub.darcs.net/thielema/carray/ @@ -57,7 +57,7 @@ build-depends: base <3 if flag(base4)- build-depends: base >=4 && <5, syb >=0.1 && <0.7+ build-depends: base >=4 && <5, syb >=0.1 && <0.8 else build-depends: base <4
src/Data/Array/CArray/Base.hs view
@@ -171,7 +171,9 @@ !(fp0, off, len) = S.toForeignPtr bs fp = mapPtr (flip plusPtr off) fp0 p = unsafeForeignPtrToPtr fp- safe = sizeOf dummy * n <= len && p == p `alignPtr` alignment dummy+ safe =+ sizeOf dummy * n <= len &&+ p == p `alignPtr` alignment dummy mapPtr :: (Ptr a -> Ptr b) -> ForeignPtr a -> ForeignPtr b mapPtr f (ForeignPtr addr contents) = case f $ Ptr addr of
tests/meteor-contest-c.hs view
@@ -1,5 +1,5 @@ {-# OPTIONS -O2 -optc-O3 #-}-{-# LANGUAGE BangPatterns#-}+{-# LANGUAGE BangPatterns #-} -- The Computer Language Benchmarks Game -- http://shootout.alioth.debian.org/
tests/meteor-contest-u.hs view
@@ -1,5 +1,5 @@ {-# OPTIONS -O2 -optc-O3 #-}-{-# LANGUAGE BangPatterns#-}+{-# LANGUAGE BangPatterns #-} -- The Computer Language Benchmarks Game -- http://shootout.alioth.debian.org/
tests/tests.hs view
@@ -4,13 +4,15 @@ import qualified Test.QuickCheck as QC import Test.QuickCheck (Property, (==>)) import Control.Arrow ((&&&), (***))+import Control.Monad (liftM2) import Text.Show.Functions () import Data.Array.CArray (CArray, flatten, ixmapWithInd, rank, reshape, shape, size, sliceWith) import Data.Ix.Shapable (shapeToStride) import Data.Array.Unboxed (IArray, Ix, UArray,- accum, amap, bounds, elems, inRange, ixmap, listArray, rangeSize)+ accum, amap, bounds, elems, ixmap, listArray, rangeSize)+import Data.Word (Word32) import Foreign.Storable (Storable) import Text.Printf (printf) import System.Environment (getArgs)@@ -101,10 +103,11 @@ prop_ixmapWithInd_amap :: (Int -> Double) -> CArray (Int,Int) Int -> Property prop_ixmapWithInd_amap f a = size a > 0 ==> ixmapWithInd (bounds a) id (\_ e _ -> f e) a == amap f a -type Acc = Int-prop_accum :: (Int -> Acc -> Int) -> CArray Int Int -> [(Int, Acc)] -> Property-prop_accum f a ies = all (inRange (bounds a) . fst) ies- ==> ( (accum :: (Int -> Acc -> Int) -> CArray Int Int -> [(Int, Acc)] -> CArray Int Int)+type Acc = Word32+prop_accum :: (Int -> Acc -> Int) -> CArray Int Int -> Property+prop_accum f a =+ QC.forAll (QC.listOf $ liftM2 (,) (QC.choose (bounds a)) QC.arbitrary) $ \ies ->+ ( (accum :: (Int -> Acc -> Int) -> CArray Int Int -> [(Int, Acc)] -> CArray Int Int) =|||= (accum :: (Int -> Acc -> Int) -> UArray Int Int -> [(Int, Acc)] -> UArray Int Int)) f a ies type Transform = CArray Int Int -> CArray Int Int