hw-prim 0.0.3.5 → 0.0.3.6
raw patch · 2 files changed
+122/−1 lines, 2 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ HaskellWorks.Data.Vector.VectorLike: instance HaskellWorks.Data.Vector.VectorLike.VectorLike (Data.Vector.Vector GHC.Int.Int16)
+ HaskellWorks.Data.Vector.VectorLike: instance HaskellWorks.Data.Vector.VectorLike.VectorLike (Data.Vector.Vector GHC.Int.Int32)
+ HaskellWorks.Data.Vector.VectorLike: instance HaskellWorks.Data.Vector.VectorLike.VectorLike (Data.Vector.Vector GHC.Int.Int64)
+ HaskellWorks.Data.Vector.VectorLike: instance HaskellWorks.Data.Vector.VectorLike.VectorLike (Data.Vector.Vector GHC.Int.Int8)
Files
- hw-prim.cabal +1/−1
- src/HaskellWorks/Data/Vector/VectorLike.hs +121/−0
hw-prim.cabal view
@@ -1,5 +1,5 @@ name: hw-prim-version: 0.0.3.5+version: 0.0.3.6 synopsis: Primitive functions and data types description: Please see README.md homepage: http://github.com/haskell-works/hw-prim#readme
src/HaskellWorks/Data/Vector/VectorLike.hs view
@@ -7,6 +7,7 @@ ) where import qualified Data.ByteString as BS+import Data.Int import qualified Data.Vector as DV import qualified Data.Vector.Storable as DVS import Data.Word@@ -318,6 +319,126 @@ vIndex v (Position i) = DVS.unsafeIndex v (fromIntegral i) vSlice (Position i) (Position j) = DVS.unsafeSlice (fromIntegral i) (fromIntegral j) vUncons s = if DVS.length s == 0 then Nothing else Just (s !!! 0, vDrop 1 s)+ {-# INLINE (!!!) #-}+ {-# INLINE vConcat #-}+ {-# INLINE vEmpty #-}+ {-# INLINE vFilter #-}+ {-# INLINE vGenerate #-}+ {-# INLINE vLength #-}+ {-# INLINE vEnd #-}+ {-# INLINE vSnoc #-}+ {-# INLINE vDrop #-}+ {-# INLINE vTake #-}+ {-# INLINE vIndex #-}+ {-# INLINE vSlice #-}+ {-# INLINE vUncons #-}++instance VectorLike (DV.Vector Int8) where+ type Elem (DV.Vector Int8) = Int8++ (!!!) v (Position i) = v DV.! fromIntegral i+ vConcat = DV.concat+ vEmpty = DV.empty+ vFilter = DV.filter+ vGenerate = DV.generate+ vLength = Count . fromIntegral . DV.length+ vEnd = Position . fromIntegral . DV.length+ vSnoc = DV.snoc+ vDrop = DV.drop . fromIntegral+ vTake = DV.take . fromIntegral+ vIndex v (Position i) = DV.unsafeIndex v (fromIntegral i)+ vSlice (Position i) (Position j) = DV.unsafeSlice (fromIntegral i) (fromIntegral j)+ vUncons s = if DV.length s == 0 then Nothing else Just (s !!! 0, vDrop 1 s)+ {-# INLINE (!!!) #-}+ {-# INLINE vConcat #-}+ {-# INLINE vEmpty #-}+ {-# INLINE vFilter #-}+ {-# INLINE vGenerate #-}+ {-# INLINE vLength #-}+ {-# INLINE vEnd #-}+ {-# INLINE vSnoc #-}+ {-# INLINE vDrop #-}+ {-# INLINE vTake #-}+ {-# INLINE vIndex #-}+ {-# INLINE vSlice #-}+ {-# INLINE vUncons #-}++instance VectorLike (DV.Vector Int16) where+ type Elem (DV.Vector Int16) = Int16++ (!!!) v (Position i) = v DV.! fromIntegral i+ vConcat = DV.concat+ vEmpty = DV.empty+ vFilter = DV.filter+ vGenerate = DV.generate+ vLength = Count . fromIntegral . DV.length+ vEnd = Position . fromIntegral . DV.length+ vSnoc = DV.snoc+ vDrop = DV.drop . fromIntegral+ vTake = DV.take . fromIntegral+ vIndex v (Position i) = DV.unsafeIndex v (fromIntegral i)+ vSlice (Position i) (Position j) = DV.unsafeSlice (fromIntegral i) (fromIntegral j)+ vUncons s = if DV.length s == 0 then Nothing else Just (s !!! 0, vDrop 1 s)+ {-# INLINE (!!!) #-}+ {-# INLINE vConcat #-}+ {-# INLINE vEmpty #-}+ {-# INLINE vFilter #-}+ {-# INLINE vGenerate #-}+ {-# INLINE vLength #-}+ {-# INLINE vEnd #-}+ {-# INLINE vSnoc #-}+ {-# INLINE vDrop #-}+ {-# INLINE vTake #-}+ {-# INLINE vIndex #-}+ {-# INLINE vSlice #-}+ {-# INLINE vUncons #-}++instance VectorLike (DV.Vector Int32) where+ type Elem (DV.Vector Int32) = Int32++ (!!!) v (Position i) = v DV.! fromIntegral i+ vConcat = DV.concat+ vEmpty = DV.empty+ vFilter = DV.filter+ vGenerate = DV.generate+ vLength = Count . fromIntegral . DV.length+ vEnd = Position . fromIntegral . DV.length+ vSnoc = DV.snoc+ vDrop = DV.drop . fromIntegral+ vTake = DV.take . fromIntegral+ vIndex v (Position i) = DV.unsafeIndex v (fromIntegral i)+ vSlice (Position i) (Position j) = DV.unsafeSlice (fromIntegral i) (fromIntegral j)+ vUncons s = if DV.length s == 0 then Nothing else Just (s !!! 0, vDrop 1 s)+ {-# INLINE (!!!) #-}+ {-# INLINE vConcat #-}+ {-# INLINE vEmpty #-}+ {-# INLINE vFilter #-}+ {-# INLINE vGenerate #-}+ {-# INLINE vLength #-}+ {-# INLINE vEnd #-}+ {-# INLINE vSnoc #-}+ {-# INLINE vDrop #-}+ {-# INLINE vTake #-}+ {-# INLINE vIndex #-}+ {-# INLINE vSlice #-}+ {-# INLINE vUncons #-}++instance VectorLike (DV.Vector Int64) where+ type Elem (DV.Vector Int64) = Int64++ (!!!) v (Position i) = v DV.! fromIntegral i+ vConcat = DV.concat+ vEmpty = DV.empty+ vFilter = DV.filter+ vGenerate = DV.generate+ vLength = Count . fromIntegral . DV.length+ vEnd = Position . fromIntegral . DV.length+ vSnoc = DV.snoc+ vDrop = DV.drop . fromIntegral+ vTake = DV.take . fromIntegral+ vIndex v (Position i) = DV.unsafeIndex v (fromIntegral i)+ vSlice (Position i) (Position j) = DV.unsafeSlice (fromIntegral i) (fromIntegral j)+ vUncons s = if DV.length s == 0 then Nothing else Just (s !!! 0, vDrop 1 s) {-# INLINE (!!!) #-} {-# INLINE vConcat #-} {-# INLINE vEmpty #-}