hw-simd 0.1.0.2 → 0.1.0.3
raw patch · 3 files changed
+1/−67 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- HaskellWorks.Data.Simd.Internal.ByteString: rechunkAlignedAt :: Int -> [ByteString] -> [ByteString]
- HaskellWorks.Data.Simd.Internal.ByteString: rechunkPaddedAlignedAt :: Int -> [ByteString] -> [ByteString]
- HaskellWorks.Data.Simd.Internal.ByteString: toByteString :: Vector Word64 -> ByteString
- HaskellWorks.Data.Simd.Internal.ByteString.Lazy: toByteString :: [Vector Word64] -> ByteString
Files
- hw-simd.cabal +1/−3
- src/HaskellWorks/Data/Simd/Internal/ByteString.hs +0/−53
- src/HaskellWorks/Data/Simd/Internal/ByteString/Lazy.hs +0/−11
hw-simd.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: hw-simd-version: 0.1.0.2+version: 0.1.0.3 synopsis: SIMD library description: Please see the README on Github at <https://github.com/haskell-works/hw-simd#readme> category: Data, Bit, SIMD@@ -89,8 +89,6 @@ HaskellWorks.Data.Simd.Comparison.Stock HaskellWorks.Data.Simd.Internal.Bits HaskellWorks.Data.Simd.Internal.Broadword- HaskellWorks.Data.Simd.Internal.ByteString- HaskellWorks.Data.Simd.Internal.ByteString.Lazy HaskellWorks.Data.Simd.Internal.Foreign HaskellWorks.Data.Simd.Internal.Marshal HaskellWorks.Data.Simd.Logical
− src/HaskellWorks/Data/Simd/Internal/ByteString.hs
@@ -1,53 +0,0 @@-module HaskellWorks.Data.Simd.Internal.ByteString- ( toByteString- , rechunkAlignedAt- , rechunkPaddedAlignedAt- ) where--import Data.Monoid ((<>))-import Data.Word--import qualified Data.ByteString as BS-import qualified Data.ByteString.Internal as BS-import qualified Data.Vector.Storable as DVS--toByteString :: DVS.Vector Word64 -> BS.ByteString-toByteString v = case DVS.unsafeToForeignPtr (DVS.unsafeCast v) of- (fptr, vOffset, vLength) -> BS.fromForeignPtr fptr vOffset vLength-{-# INLINE toByteString #-}--rechunkAlignedAt :: Int -> [BS.ByteString] -> [BS.ByteString]-rechunkAlignedAt alignment = go- where go (bs:bss) = case BS.length bs of- bsLen -> if bsLen < alignment- then case alignment - bsLen of- bsNeed -> case bss of- (cs:css) -> case BS.length cs of- csLen | csLen > bsNeed -> (bs <> BS.take bsNeed cs ):go (BS.drop bsNeed cs:css)- csLen | csLen == bsNeed -> (bs <> cs ):go css- _ | otherwise -> go ((bs <> cs) :css)- [] -> [bs]- else case (bsLen `div` alignment) * alignment of- bsCroppedLen -> if bsCroppedLen == bsLen- then bs:go bss- else BS.take bsCroppedLen bs:go (BS.drop bsCroppedLen bs:bss)- go [] = []-{-# INLINE rechunkAlignedAt #-}--rechunkPaddedAlignedAt :: Int -> [BS.ByteString] -> [BS.ByteString]-rechunkPaddedAlignedAt alignment = go- where go (bs:bss) = case BS.length bs of- bsLen -> if bsLen < alignment- then case alignment - bsLen of- bsNeed -> case bss of- (cs:css) -> case BS.length cs of- csLen | csLen > bsNeed -> (bs <> BS.take bsNeed cs ):go (BS.drop bsNeed cs:css)- csLen | csLen == bsNeed -> (bs <> cs ):go css- _ | otherwise -> go ((bs <> cs) :css)- [] -> [bs <> BS.replicate bsNeed 0]- else case (bsLen `div` alignment) * alignment of- bsCroppedLen -> if bsCroppedLen == bsLen- then bs:go bss- else BS.take bsCroppedLen bs:go (BS.drop bsCroppedLen bs:bss)- go [] = []-{-# INLINE rechunkPaddedAlignedAt #-}
− src/HaskellWorks/Data/Simd/Internal/ByteString/Lazy.hs
@@ -1,11 +0,0 @@-module HaskellWorks.Data.Simd.Internal.ByteString.Lazy where--import Data.Word--import qualified Data.ByteString.Lazy as LBS-import qualified Data.Vector.Storable as DVS-import qualified HaskellWorks.Data.Simd.Internal.ByteString as BS--toByteString :: [DVS.Vector Word64] -> LBS.ByteString-toByteString vs = LBS.fromChunks $ BS.toByteString <$> vs-{-# INLINE toByteString #-}