hw-prim 0.0.3.6 → 0.0.3.7
raw patch · 2 files changed
+121/−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.Storable.Vector GHC.Int.Int16)
+ HaskellWorks.Data.Vector.VectorLike: instance HaskellWorks.Data.Vector.VectorLike.VectorLike (Data.Vector.Storable.Vector GHC.Int.Int32)
+ HaskellWorks.Data.Vector.VectorLike: instance HaskellWorks.Data.Vector.VectorLike.VectorLike (Data.Vector.Storable.Vector GHC.Int.Int64)
+ HaskellWorks.Data.Vector.VectorLike: instance HaskellWorks.Data.Vector.VectorLike.VectorLike (Data.Vector.Storable.Vector GHC.Int.Int8)
Files
- hw-prim.cabal +1/−1
- src/HaskellWorks/Data/Vector/VectorLike.hs +120/−0
hw-prim.cabal view
@@ -1,5 +1,5 @@ name: hw-prim-version: 0.0.3.6+version: 0.0.3.7 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
@@ -452,3 +452,123 @@ {-# INLINE vIndex #-} {-# INLINE vSlice #-} {-# INLINE vUncons #-}++instance VectorLike (DVS.Vector Int8) where+ type Elem (DVS.Vector Int8) = Int8++ (!!!) v (Position i) = v DVS.! fromIntegral i+ vConcat = DVS.concat+ vEmpty = DVS.empty+ vFilter = DVS.filter+ vGenerate = DVS.generate+ vLength = Count . fromIntegral . DVS.length+ vEnd = Position . fromIntegral . DVS.length+ vSnoc = DVS.snoc+ vDrop = DVS.drop . fromIntegral+ vTake = DVS.take . fromIntegral+ 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 (DVS.Vector Int16) where+ type Elem (DVS.Vector Int16) = Int16++ (!!!) v (Position i) = v DVS.! fromIntegral i+ vConcat = DVS.concat+ vEmpty = DVS.empty+ vFilter = DVS.filter+ vGenerate = DVS.generate+ vLength = Count . fromIntegral . DVS.length+ vEnd = Position . fromIntegral . DVS.length+ vSnoc = DVS.snoc+ vDrop = DVS.drop . fromIntegral+ vTake = DVS.take . fromIntegral+ 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 (DVS.Vector Int32) where+ type Elem (DVS.Vector Int32) = Int32++ (!!!) v (Position i) = v DVS.! fromIntegral i+ vConcat = DVS.concat+ vEmpty = DVS.empty+ vFilter = DVS.filter+ vGenerate = DVS.generate+ vLength = Count . fromIntegral . DVS.length+ vEnd = Position . fromIntegral . DVS.length+ vSnoc = DVS.snoc+ vDrop = DVS.drop . fromIntegral+ vTake = DVS.take . fromIntegral+ 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 (DVS.Vector Int64) where+ type Elem (DVS.Vector Int64) = Int64++ (!!!) v (Position i) = v DVS.! fromIntegral i+ vConcat = DVS.concat+ vEmpty = DVS.empty+ vFilter = DVS.filter+ vGenerate = DVS.generate+ vLength = Count . fromIntegral . DVS.length+ vEnd = Position . fromIntegral . DVS.length+ vSnoc = DVS.snoc+ vDrop = DVS.drop . fromIntegral+ vTake = DVS.take . fromIntegral+ 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 #-}